http://blog.sina.com.cn/s/blog_6a1837e90100uhl3.html
如果不要求很精确的话,用alarm()和signal()就够了 unsigned intalarm(unsigned int seconds) 函数说明: alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。
alarm也称为闹钟函数,alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds为0,则之前设置的闹钟会被取消,并将剩下的时间返回。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。
所需头文件
#include<unistd.h>
函数原型
unsigned int alarm(unsigned int seconds)
函数参数
seconds:指定秒数
函数返回值
成功:如果调用此alarm()前,进程已经设置了闹钟时间,则返回上一个闹钟时间的剩余时间,否则返回0。
出错:-1
代码:
#include<unistd.h>
#include<signal.h>
void handler()
{
printf("Hello\n");
signal(SIGALRM,handler); //让内核做好准备,一旦接受到SIGALARM信号,就执行 handler
alarm(5);
}
void main()
{
int i;
handler();
for(i=1;i<21;i++)
{
printf("sleep%d ...\n",i);
sleep(1);
}
}
经过测试上面的代码是可以通过的;