NOM
sigset, sighold, sigrelse, sigignore - API signaux System V
SYNOPSIS
#define _XOPEN_SOURCE 500
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t sigset(int sig, sighandler_t disp);
int sighold(int sig);
int sigrelse(int sig);
int sigignore(int sig);
Ces fonctions sont fournies dans la glibc comme interface de
compatibilité pour les programmes qui utilisent l’API signaux System V
historique. Cette API est obsolète, les nouvelles applications
devraient utiliser l’API signaux POSIX (sigaction(2), sigprocmask(2),
etc.).
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 :
SIG_DFL
Réinitialiser le dispositif de sig à sa valeur par défaut.
SIG_IGN
Ignorer sig.
SIG_HOLD
Ajouter sig au masque de signaux du processus, mais laisser le
dispositif de sig inchangé.
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.
VALEUR RENVOYÉE
Si elle réussit, sigset() renvoie SIG_HOLD si sig était bloqué avant
l’appel ou le dispositif précédent du signal s’il n’était pas bloqué
avant l’appel. Si elle échoue, sigset() renvoie -1 et écrit errno pour
indiquer l’erreur (mais consultez la section BOGUES ci-dessous).
Les fonctions sighold(), sigrelse() et sigignore() renvoient 0 si elle
réussissent et -1 si elles échouent et écrivent errno pour indiquer
l’erreur.
ERREURS
Pour sigset(), voir la section ERREURS des pages de manuel sigaction(2)
et sigprocmask(2).
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).
CONFORMITÉ
SVr4, POSIX.1-2001. Ces fonctions sont obsolètes. Ne les utilisez pas
dans de nouveaux programmes. POSIX.1-2008 marque sighold(),
sigignore(), sigpause(), sigrelse() et sigset() comme étant obsolètes,
en recommandant d’utiliser à la place sigaction(2), sigprocmask(2),
pthread_sigmask(3) et sigsuspend(2).
NOTES
Ces fonctions sont apparues dans la glibc version 2.1.
Le type sighandler_t est une extension GNU. Il n’est utilisé dans cette
page que pour rendre le prototype de sigset() plus lisible.
La fonction sigset() fournit une sémantique de gestion des signaux
fiable (comme lorsqu’on appelle sigaction(2) avec sa_mask valant 0).
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. Voir
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. Voir sigpause(3) pour les détails.
BOGUES
Dans les versions de la glibc antérieures à la 2.2, sigset() ne
débloquait pas sig si disp était spécifié à une autre valeur que
SIG_HOLD.
Dans les versions de la glibc antérieures à 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ésolu depuis la version 2.5
de la glibc.
VOIR AUSSI
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), raise(3),
sigpause(3), sigvec(3), feature_test_macros(7), signal(7)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite par Alain Portal <aportal AT
univ-montp2 DOT fr> en 2006, et mise à disposition sur
http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».