#include <signal.h> typedef void (*sighandler_t)(int); [[deprecated]] sighandler_t sigset(int sig, sighandler_t disp); [[obsolète]] int sighold(int sig); [[obsolète]] int sigrelse(int sig); [[obsolète]] int sigignore(int sig);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :
sigset(), sighold(), sigrelse(), sigignore() :
_XOPEN_SOURCE >= 500
La fonction sigset() modifie le dispositif du signal sig. L'argument disp peut être l'adresse d'une fonction gestionnaire de signaux ou l'une des constantes suivantes :
Si disp spécifie l'adresse d'un gestionnaire de signaux, sig est ajouté au masque de signaux du processus pendant l'exécution du gestionnaire.
Si disp a été spécifié à une autre valeur que SIG_HOLD, sig est retiré du masque de signaux du processus.
Les dispositifs pour SIGKILL et SIGSTOP ne peuvent pas être modifiés.
La fonction sighold() ajoute sig au masque de signaux du processus appelant.
La fonction sigrelse() retire sig du masque de signaux du processus appelant.
La fonction sigignore() configure le dispositif de sig à SIG_IGN.
Les fonctions sighold(), sigrelse() et sigignore() renvoient 0 si elle réussissent et -1 si elles échouent et écrivent errno pour indiquer l'erreur.
Pour sighold() et sigrelse(), voir la section ERREURS de la page de manuel sigprocmask(2).
Pour sigignore(), voir la section ERREURS de la page de manuel sigaction(2).
| Interface | Attribut | Valeur |
| sigset(), sighold(), sigrelse(), sigignore() | Sécurité des threads | MT-Safe |
Sur System V, la fonction signal() fournit une sémantique non fiable (comme lorsqu'on appelle sigaction(2) avec sa_mask valant SA_RESETHAND | SA_NODEFER). Sur BSD, signal() fournit une sémantique fiable. POSIX.1-2001 laisse ces aspects de signal() non spécifiés. Consultez signal(2) pour plus de détails.
Afin d'attendre un signal, BSD et System V fournissent tous les deux une fonction nommée sigpause(3), mais cette fonction n'a pas le même argument sur les deux systèmes. Consultez sigpause(3) pour les détails.
Avant la glibc 2.5, sigset() ne renvoyait pas correctement le dispositif précédent du signal dans deux cas. Le premier, si disp était spécifié à SIG_HOLD, un appel réussi à sigset() renvoyait toujours SIG_HOLD. À la place, elle aurait dû renvoyer le dispositif précédent du signal (à moins que le signal ne fût bloqué, auquel cas SIG_HOLD aurait été renvoyé). Le second, si le signal est actuellement bloqué, la valeur renvoyée par un appel à sigset() réussi devait renvoyer SIG_HOLD. À la place, elle renvoyait le dispositif précédent du signal. Ces problèmes ont été résolus depuis la glibc 2.5.
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à