sigset, sighold, sigrelse, sigignore - API signaux System V
Bibliothèque C standard (
libc,
-lc)
#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);
sigset(),
sighold(),
sigrelse(),
sigignore() :
_XOPEN_SOURCE >= 500
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.
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 des 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.
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).
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
sigset(), sighold(), sigrelse(),
sigignore() |
Sécurité des threads |
MT-Safe |
SVr4, POSIX.1-2001, POSIX.1-2008. These functions are obsolete: do not use them
in new programs. POSIX.1-2008 marks
sighold(),
sigignore(),
sigpause(3),
sigrelse(), and
sigset() as obsolete,
recommending the use of
sigaction(2),
sigprocmask(2),
pthread_sigmask(3), and
sigsuspend(2) instead.
These functions appeared in glibc 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. 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.
Before glibc 2.2,
sigset() did not unblock
sig if
disp was
specified as a value other than
SIG_HOLD.
Before glibc 2.5,
sigset() does not correctly return the previous
disposition of the signal in two cases. First, if
disp is specified as
SIG_HOLD, then a successful
sigset() always returns
SIG_HOLD. Instead, it should return the previous disposition of the
signal (unless the signal was blocked, in which case
SIG_HOLD should be
returned). Second, if the signal is currently blocked, then the return value
of a successful
sigset() should be
SIG_HOLD. Instead, the
previous disposition of the signal is returned. These problems have been fixed
since glibc 2.5.
kill(2),
pause(2),
sigaction(2),
signal(2),
sigprocmask(2),
raise(3),
sigpause(3),
sigvec(3),
signal(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Cédric Boutillier <
[email protected]> et
Frédéric Hantrais <
[email protected]>
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 à
[email protected]