你好,我看到你有一篇文章是写alarm的使用方法的,里面有一段代码是这样的
void settime(int signum)
{
printf("begin dingshi\n");
printf("signum=%d\n",signum);
alarm(2);
}
int main()
{
signal(SIGALRM,settime);
alarm(2);
while(1)
{
pause();
}
return 0;
}
你那边程序运行的结果是循环处理,打印begin dingshi和signum=14
可是我的signal函数只捕捉一次函数,第二次alarm时钟一到,程序就自动结束了
我在其他地方找到说signal函数只能捕捉一次,想要循环打印就需要在循环里面加入signal函数进行
循环捕捉,但是我发现你的代码不需要循环使用
想问一下这是什么情况呀?
虽然不知道你这写给谁的,但是还是想告诉你,循环是没有问题的。因为你的settime 中另起了一个alarm。。。。