请问用C语言编写的时间中断中,能否在中断过程中实现数据的读取?

来源:百度知道 编辑:UC知道 时间:2024/06/25 01:10:40
就是想在定时中断中,每中断一次就从外部的文件里读一个数进来,这个方法可行么?如果可以,该如何实现?

用Sleep()吗?
同时进行应该是不行的,可以再中断之后马上就读入一个数。
void pause(int *p,const int time)
{
Sleep(time);
scanf("%d", p);
}

TurboC 时间中断函数

#include<dos.h>
#include<stdio.h>
#include<conio.h>

void install();/*安装新的中断向量,即将中断服务程序安装到中断向量表中*/
void interrupt (*oldtimer)();/*指向未安装前的中断向量,即函数指针,指向一段可执行的代码*/
void interrupt newtimer();/*新的中断服务程序*/

int n = 0;
int main()
{
oldtimer = getvect(0x1c);
install(newtimer);
...

install(oldtimer);/*程序结束之前,恢复中断*/
}

void interrupt newtimer()/*新的中断服务程序*/
{

n++;
if (n > 1000)
n = 0;

(*oldtimer)();
}

void install (void interrupt (*paddr)())
{
disable();
setvect(0x1c,paddr);
enable();
}

可以啊,我觉得用多线程,一个线程在sleep的时候,另一个线程读数,然后第一个线程醒来继续执行,如果你觉得可以这样的话,具体的给你推荐一本书吧,linux程序设计,第3版

无疑使用多线程啊,创建辅助线程,中断时间让辅助线程读取