linux alarm函数使用

来源:互联网 发布:vscode好看的主题 编辑:程序博客网 时间:2024/06/04 22:28
unsigned int alarm(unsigned int seconds)
函数作用:在seconds秒之后向调用alarm()的进程发送一个SIGALRM信号。
1.如果指定seconds是0,表示取消正在等待的alarm,如果在等待时间结束之前有其它事件到来,alarm也将被取消。
2.对于一个进程而言,只有最近的依次alarm()调用是有效的。alarm()的返回值是上次alarm()调用剩余的时间。
alarm()函数经常与signal(int signum, sighandler_t handler)函数一起使用,通过signal()函数可以指定受到该信号后的动作。
signum是要处理的信号类型
handler是一个函数指针,指向接到信号后的相应动作
linux所有的事件类型可以通过kill -l命令查看所有的信号类型的宏定义
通过man signal和man alarm可分别查看函数的帮助文档
多次alarm()调用示例:
#include<unistd.h>#include<stdio.h>int main(){alarm(8);printf("alarm seconds is 8\n");sleep(3);int remain = alarm(6);printf("first alarm remain time is %d\n", remain);printf("new alarm seconds is 6\n");pause();}

alarm()与signal()配合示例:
#include<unistd.h>#include<signal.h>#include<stdio.h>void handler(){printf("handler invoked!\n");}int main(){printf("main begin\n");signal(SIGALRM, handler);alarm(2);pause();printf("main end\n");}







0 0
原创粉丝点击