Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
SIGSET
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- ERREURS
- NOTES
- BOGUES
- CONFORMITÉ
- VOIR AUSSI
- TRADUCTION
NOM
sigset, sighold, sigrelse, sigignore - API signaux Système 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 Système 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.
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).
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() avec sa_mask valant 0).
Sur Système V, la fonction signal() fournit une sémantique non fiable
(comme lorsqu'on appelle sigaction() 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 Système V fournissent tous les deux une
fonction nommée sigpause(), 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 toutes les versions de la glibc jusqu'à la 2.3.5 y compris, 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.
CONFORMITÉ
SVr4, POSIX.1-2001. Ces fonctions sont obsolètes. Ne les utilisez pas dans
de nouveaux programmes.
VOIR AUSSI
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2),
raise(3), sigpause(3), sigvec(3), signal(7)
TRADUCTION
Cette page de manuel a été traduite par Alain Portal
<aportal AT univ-montp2 DOT fr> en 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».
|