Déroutement: Exemple


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


suivant      plan