我正在尝试捕获SIGVTALRM
sent by setitimer
,但我不知道为什么它不起作用。这是我的代码:
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()
- 是因为它没有捕获信号还是因为我不知道一开始就没有发送信号。
这应该很简单。有任何想法吗?谢谢