bse*_*lla 1 c signals while-loop alarm
我正在尝试执行此代码:
signal(SIGALRM,handler); alarm(1); while(1){}
该handler功能只打印"测试".
handler
alarm(1)在这种情况下,最终只会执行一次.我试着把它放在循环中,似乎它根本没有被执行!
alarm(1)
我对信号有点新意.有人可以向我解释这是怎么发生的吗?
chr*_*ock 5
如果你只是alarm(1)在你的例子中放入循环,你将alarm(1)在每次调用的几微秒内无限次地调用.然后发生这种情况:
如果已经设置了警报()但尚未发送警报,则另一次警报()呼叫将取代之前的呼叫.
即,在循环的每次迭代中清除警报.由于您的循环永远运行,因此警报永远不会永久设置.
归档时间:
9 年 前
查看次数:
420 次
最近记录: