有一個名爲test()的函數,我想每30秒調用一次該函數,請查找我實現的代碼片段。C:如何暫停sigaction定時器
void init_sigaction(void) {
struct sigaction act;
act.sa_handler = test; //test()
act.sa_flags = 0;
sigemptyset(&act.sa_mask);
sigaction(SIGPROF, &act, NULL);
}
void init_time(void) {
struct itimerval val;
val.it_value.tv_sec = 30; //Timer 30 Seconds
val.it_value.tv_usec = 0;
val.it_interval = val.it_value;
setitimer(ITIMER_PROF, &val, NULL);
}
int main()
{
/*Set the handler for the signal SIG to HANDLER */
signal(SIGINT, signal_handler);
init_sigaction();
init_time();
Some_other_function();
}
現在我使用一些其他的功能,我想暫停sigaction的計時器,直到其他功能的執行。我如何實現中斷暫停?
謝謝,
你想停止運行計時器,還是延遲信號處理程序的執行? – Hasturkun 2012-04-10 10:14:53
我想停止計時器,當我的其他進程完成時,我想運行計時器。 – Nimit 2012-04-10 10:16:22