#include <stdio.h>
#include <signal.h>
void f( int );
int main () {
int i ;
signal ( SIGINT , f) ;
for (i =0; i <5; i ++) {
printf ( " hello \n " ) ;
sleep (10) ;
}
}
void f( int signum ){
//signal ( SIGINT , f) ;
printf ( " OUCH !\n ") ;
}
Я пытаюсь научиться обрабатывать сигналы в c. В приведенном выше коде я не мог понять, как работает этот сигнал функции. Я понимаю, что когда я выполняю этот код, когда я нажимаю control-c, функция f будет выполняться и прервет цикл. Но когда я нажимаю повторно и быстро, команда control-c sleep не будет выполняться. Почему?
sleep
не будет выполняться после сигнала? - person egur   schedule 11.06.2014sigaction()
вместо signal(). - person pmg   schedule 11.06.2014