alarm()也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它就向进程发送SIGALARM信号。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm()之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。
pause()函数用于将调用进程挂起直至捕捉到信号为止。这个函数很常用,通常可以用于判断信号是否已到。
表1列出了alarm()函数的语法要点。
表1 alarm()函数语法要点
以下实例实际上已完成了一个简单的sleep()函数的功能,由于SIGALARM默认的系统动作为终止该进程,因此程序在打印信息前就会被结束了,代码如下:
#include<unistd.h>
#include<stdio.h>
int main()
{
/* 调用alarm定时器函数 */
int ret = alarm(5);
pause();
printf("I have been waken up.\n",ret); /* 此语句不会被执行 */
}
执行结果:
$./alarm_pause
Alarm clock