Available in

(3) (3)/fr (3)/ja

Contents

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);

DESCRIPTION

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 [AT] centraliens.net> et l’équipe francophone de traduction de Debian.

Veuillez signaler toute erreur de traduction en écrivant à <debian−l10n−french [AT] lists.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> ».

COMMENTS

blog comments powered by Disqus