Intercepter [Ctrl] C

Problème

Vous ne voulez pas que la séquence [Ctrl] C interrompe votre programme.

Solution

Mettez en place un gestionnaire de signaux comme ci-dessous :


struct sigaction sa; 
memset (&sa, 0, sizeof *sa); 
sa.sa_sigaction = SIG_IGN; 
sa.sa_flags = 0; 
sigemptyset (&(sa.sa_mask)); 
if (sigaction (SIGINT, &sa, NULL) != 0) 
  { 
    fprintf (stderr, "Erreur sur sigaction"); 
  }
 

Discussion

Cette méthode consiste à purement et simplement ignorer le signal INT que [Ctrl] C envoie au processus. Il est aussi possible de mettre en place un gestionnaire de signaux avec une fonction de traitement du signal comme vu dans la première recette de ce chapitre.

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Savoir si un signal a été bloqué
Suivant
Envoyer un signal