signal函数实现信号超时信号的捕捉
Posted 阿龙亡命天涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了signal函数实现信号超时信号的捕捉相关的知识,希望对你有一定的参考价值。
超时信号的捕捉
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <signal.h>
void fun(int signo)
printf("捕捉到信号:%d\\n",signo);
int main()
int ret=-1;
struct itimerval tmo;
//第一次触发时间
tmo.it_value.tv_sec=3;
tmo.it_value.tv_usec=0;
//触发周期
tmo.it_interval.tv_sec=2;
tmo.it_interval.tv_usec=0;
//捕捉信号SIGALRM
signal(SIGALRM,fun);
//设置定时器
ret = setitimer(ITIMER_REAL,&tmo,NULL);
if(-1 == ret)
perror("setitimer");
return 1;
//进程收到闹钟超时信号之后就会终止该进程
printf("按下任意键继续...\\n");
getchar();
return 0;
第一次隔3秒钟捕捉到信号、下一次且以后都是每隔2秒就会捕捉一次!
设置定时器,若进程结束了,那么这个定时器就没用了!
以上是关于signal函数实现信号超时信号的捕捉的主要内容,如果未能解决你的问题,请参考以下文章
信号---早期signal函数和现代signal函数的一些对比