1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| void traite_signaux(int num_signal) {
switch (num_signal) {
case SIGINT : printf("Interruption reçue, on continue\n"); break;
case SIGALRM : printf("Fin d'alarme reçue, tant pis\n");
exit(1); break;
default : printf("signal non pris en compte\n"); exit(1);
}
}
int main(void) {
char c;
//attente du signal
if (signal(SIGINT, traite_signaux)==SIG_ERR) exit(1);
if (signal(SIGALRM, traite_signaux)==SIG_ERR) exit(1);
//attente de CTRL*C
pause();
printf("C'est parti\n");
alarm(5);
printf("Entrez un caractere avant 5 secondes\n");
c=getchar();
alarm(0);
fflush(stdin);
printf("caractère frappe : %c\n",c);
return 0;
} |