Unix下编程很容易遇到这个函数,我们可以先看下这个函数的介绍,用man工具,man alarm。
对于Unix系统的联机帮助中关于alarm函数的介绍如下:
- #include <unistd.h>
- unsigned int alarm(unsigned int seconds);
它的主要功能是设置信号传送闹钟。其主要功能用来设置信号SIGALRM在经过seconds指定的秒数后传送给目前的进程,如果在定时未完成的时间内再次调用了alarm函数,则后一次定时器设置将覆盖前面的设置,当seconds设置为0时,定时器将被取消。它返回上次定时器剩余时间,如果是第一次设置则返回0。
举个简单的例子:
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <signal.h>
- void sig_alarm()
- {
- exit(0);
- }
- int main(int argc, char *argv[])
- {
- signal(SIGALRM, sig_alarm);
- alarm(10);
- sleep(15);
- printf("Hello World!\n");
- return 0;
- }
程序在10s后结束,并未输出Hello World!
本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/946135,如需转载请自行联系原作者