SIGALRMを繰り返し設定して消えるまで待ってから、やり直してください。私は私のハンドラ関数では:SIGALRMを繰り返す方法は?
void handler(int signum)
{
struct itimerval timer;
struct sigaction sa;
sa.sa_handler = handler;
timer.it_interval.tv_sec = 0;
timer.it_interval.tv_usec = 0;
timer.it_value.tv_usec = 0;
timer.it_value.tv_sec = 1000;
sigaction(SIGALRM, &sa, 0);
setitimer(ITIMER_REAL, &timer, 0);
printf("pause for me\n");
pause();
}
と私のメインで私が持っている:
int main(void)
{
handler(0);
return 0;
}
しかし、それがないすべては二回、その後屋台繰り返しです。私はそれを繰り返し続けてほしい。どうしたの?
シグナルハンドラから 'setitimer'を使用するのは安全ですか?しかし、おそらくここで大丈夫です。 –
しかし 'timer_settime()'は[ok]です(http://www.kernel.org/doc/man-pages/online/pages/man7/signal.7.html)。 –