Linux下C编程:alarm
alarm()用来配置信号SIGALRM在颠末参数seconds指定的秒数后传送给今朝的历程。假如参数seconds 为0,则之前配置的闹钟会被打消,并将剩下的时间返回。信号正常发送时返回值为0。若新的报警配置在前一次设定尚未竣事时,发送,则返回前一次配置所剩时间。返回之前闹钟的剩余秒数,假如之前未设闹钟则返回0。
alarm()执行后,历程将继承执行,在后期(alarm今后)的执行进程中将会在seconds秒后收到信号SIGALRM并执行其处理惩罚函数。
利用alarm函数可以配置一个计时器,在未来某个指定的时间该计时器会超时。当计时器超时时,发生SIGALARM信号。假如不捕获或不忽略此信号,则其默认行动是终止挪用该alarm函数的历程。
每个历程只能有一个闹钟时钟,假如在挪用alarm时,已经为该历程配置过闹钟时钟,并且它还没有超时,则将该闹钟时钟的余留值作为本次alarm函数挪用的返回值。以前挂号的闹钟时钟将被新值取代。
假如有以前为历程挂号的尚未高出的闹钟时钟,并且本次挪用的seconds为0,则打消以前的闹钟时钟,其余留值仍作为alarm的返回值。
(以上这几段话摘自《unix情况高级编程》)
#include <stdio.h> #include <signal.h> #include <time.h> void func(); void main() { signal(SIGALRM,&func); alarm(4); while(1) pause(); } void func() { printf("getsigalrm!!\n"); alarm(1); }
查察全套文章:http://www.bianceng.cn/Programming/C/201212/34807.htm