Sauvegarder un gestionnaire de signaux et le restaurer par la suite

Problème

Vous souhaitez sauvegarder un gestionnaire de signaux pour en installer un nouveau temporairement, et ensuite, restaurer l’ancien.

Solution

Utilisez le troisième argument de sigaction().

Discussion

Le troisième argument de sigaction() permet de connaître le précédent masque de signaux. C’est ainsi que vous le sauvegardez, tout en installant un nouveau masque. Pour le restaurer, il suffira de rappeler sigaction() en donnant l’ancien masque en second argument.


struct sigaction ancien, nouveau; 
 
/* initialisation du nouveau masque */ 
sigaction (signal, &nouveau, &ancien); 
/* instructions */ 
sigaction (signal, &ancien, NULL);
 

Voir aussi la page de manuel de la fonction sigaction().

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
Envoyer un signal
Suivant
Limiter le temps d'exécution d'une partie d'un programme