alarm函数
#include<unistd.h>
unsigned int alarm(unsigned int seconds);
功能:
在seconds秒后,向调用进程发送一个SIGALRM信号,SIGALRM信号的默认动作是终止调用alarm函数的进程。
返回值:
若以前没有设置过定时器,或设置的定时器已超时,返回0;
否则返回定时器剩余的秒数,并重新设置定时器。
代码:
#include<stdio.h>
#include<unistd.h>
int main()
{
//当执行到alarm之后,代码会接着往下执行,当设定的时间到后,会产生SIGALRM信
unsigned int sec;
sec = alarm(5);
printf("sec = %d\n",sec);
sleep(3);
sec = alarm(6);
printf("sec = %d\n",sec);
while(1)
{
printf("hello world\n");
sleep(1);
}
return 0;
}
结果:
注意:
如果一个程序中出现多个alarm闹钟,第一个如果没有到达指定的时间就遇到第二个,则第一个的闹钟时间清除,按照第二个alarm闹钟的时间继续向下进行。