Programme derouter.c
|
|
#include <stdio.h> #include <string.h> #include <signal.h> void quoifaire (int sig) { printf("Bien reçu %d %s \n",sig,strsignal(sig)); if (sig == SIGINT) { printf ("Fin Volontaire\n"); exit (1);}} |
void main() { signal(SIGINT, quoifaire); /* Ctrl-C = n°2*/ signal(SIGQUIT, quoifaire); /* Ctrl-\ = n°3*/ signal(SIGTSTP, quoifaire); /* Ctrl-Z = n°20*/ signal(SIGUSR1, quoifaire); for (;;); } |
Exemple d'éxécution
(le processus a comme pid: 345)
|
|
Bien reçu 20 Arrêté ==> Ctrl-Z ou kill -SIGTSTP 345 en ligne de commande ou kill (345,SGTSTP) d'un autre programme. Bien reçu 3 Quitter ==> Ctrl-\ ou kill -SIGQUIT 345 ou kill (345,SIGQUIT) Bien reçu 10 Signal # 1défini par l'usager ==> kill -SIGUSR1 345 ou kill (345,SIGUSR1) Bien reçu 2 Interruption ==> Ctrl-C ou kill -SIGINT 345 ou kill (345,SIGINT) Fin volontaire |