我想捕获由setitimer
发送的SIGVTALRM
,我不知道为什么它不起作用。这里是我的代码:捕获SIGVTALRM信号,cp
void time(int time) {
cout << "time" << endl;
exit(0);
}
int main(void) {
signal(SIGVTALRM, time);
itimerval tv;
tv.it_value.tv_sec = 5;
tv.it_value.tv_usec = 0;
tv.it_interval.tv_sec = 5;
tv.it_interval.tv_usec = 0;
setitimer(ITIMER_VIRTUAL, &tv, NULL);
while (true) {
cout << "waiting" << endl;
}
return 0;
}
出于某种原因,它永远不会调用time()
- 是它,因为它没有赶上信号或者因为信号没有在第一时间送到我不知道。
它应该很简单。有任何想法吗?谢谢
你的意思“它不工作”是什么?这是一个一般的:) – Aslan986 2012-04-26 09:41:06
是的,我编辑了这个问题。它永远不会进入时间(),所以我认为它可能无法捕捉到信号 – yotamoo 2012-04-26 09:42:40