signal函数实现信号、超时信号的捕捉

signal函数实现信号、超时信号的捕捉,第1张

signal函数实现信号、超时信号的捕捉




超时信号的捕捉
#include 
#include 
#include 
#include 
#include 

void fun(int signo)
{
	printf("捕捉到信号:%dn",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秒就会捕捉一次!

设置定时器,若进程结束了,那么这个定时器就没用了!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5692091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存