Второй сигнал вызова в sighandler - зачем?
Недавно я нашел код, который используетsignal
:
286 static void sighandler( int signum )
287 {
288 alarmed = 1;
289 signal( signum, sighandler );
290 }
291
292 void set_alarm( int seconds )
293 {
294 alarmed = 0;
295 signal( SIGALRM, sighandler );
296 alarm( seconds );
297 }
У меня есть некоторые проблемы, чтобы выяснить, почему мне нужно позвонитьsignal
2 раза, особенно, зачем мне звонитьsignal
вsighandler
? Я знаю, что делает приведенный выше код, но не понимаю, зачем мне звонитьsignal
2 раза.