Provided by: manpages-fr-dev_3.65d1p1-1_all 

NOM
sigvec, sigblock, sigsetmask, siggetmask, sigmask - API signaux BSD
SYNOPSIS
#include <signal.h>
int sigvec(int sig, struct sigvec *vec, struct sigvec *ovec);
int sigmask(int signum);
int sigblock(int mask);
int sigsetmask(int mask);
int siggetmask(void);
Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :
Toutes les fonctions ci-dessus : _BSD_SOURCE
DESCRIPTION
Ces fonctions sont fournies dans la glibc comme interface de compatibilité pour les programmes qui
utilisent l'API signaux BSD historique. Cette API est obsolète, les nouvelles applications devraient
utiliser l'API signaux POSIX (sigaction(2), sigprocmask(2), etc.).
La fonction sigvec() configure et/ou récupère le dispositif du signal sig (comme l'appel POSIX
sigaction(2)). Si vec n'est pas NULL, il pointe sur une structure sigvec qui définit le nouveau
dispositif pour sig. Si ovec n'est pas NULL, il pointe sur une structure sigvec qui est utilisée pour
renvoyer le dispositif précédent de sig. Pour obtenir le dispositif courant de sig sans le modifier, vous
devez spécifier NULL pour vec, et un pointeur non NULL pour ovec.
Les dispositifs pour SIGKILL et SIGSTOP ne peuvent pas être modifiés.
La structure sigvec à la forme suivante :
struct sigvec {
void (*sv_handler)(int); /* Dispositif du signal*/
int sv_mask; /* Signaux à bloquer dans le gestionnaire */
int sv_flags; /* Drapeaux */
};
Le champ sv_handler spécifie le dispositif du signal et est soit l'adresse de la fonction gestionnaire de
signal, soit SIG_DFL signifiant que le dispositif par défaut s'applique au signal, soit SIG_IGN
signifiant que le signal est ignoré.
Si sv_handler spécifie l'adresse d'un gestionnaire de signal, sv_mask spécifie un masque de signaux qui
seront bloqués pendant que le gestionnaire s'exécute. De plus, le signal pour lequel le gestionnaire est
appelé est également bloqué. Toute tentative de bloquer SIGKILL ou SIGSTOP est silencieusement ignorée.
Si sv_handler spécifie l'adresse d'un gestionnaire de signal, le champ sv_flags spécifie des attributs
contrôlant ce qui se passe lorsque le gestionnaire est appelé. Ce champ peut contenir zéro ou plus des
attributs suivants :
SV_INTERRUPT
Si le gestionnaire de signaux interrompt un appel système bloquant, l'appel système ne sera pas
relancé au retour du gestionnaire. À la place, il échouera avec l'erreur EINTR. Si cet attribut
n'est pas spécifié, les appels système sont relancés par défaut.
SV_RESETHAND
Réinitialiser le dispositif du signal à sa valeur par défaut avant d'appeler le gestionnaire de
signaux. Si cet attribut n'est pas spécifié, le gestionnaire reste positionné jusqu'à ce qu'il
soit explicitement supprimé par un appel ultérieur à sigvec() ou jusqu'à ce que le processus
effectue un execve(2).
SV_ONSTACK
Gère le signal sur la pile de signaux spécifique (historiquement positionné sous BSD avec la
fonction obsolète sigstack() ; la fonction POSIX qui la remplace est sigaltstack(2)).
La macro sigmask() construit et renvoie un masque de signaux pour signum. Par exemple, on peut
initialiser le champ vec.sv_mask passé à sigvec() avec un code tel que le suivant :
vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);
/* Bloquer SIGQUIT et SIGABRT pendant
l'exécution du gestionnaire */
La fonction sigblock() ajoute les signaux de mask au masque de signaux du processus (comme l'appel POSIX
sigprocmask(SIG_BLOCK)), et renvoie le masque de signaux précédent du processus. Toute tentative de
bloquer SIGKILL ou SIGSTOP est silencieusement ignorée.
La fonction sigsetmask() configure le masque de signaux du processus à la valeur donnée dans mask (comme
l'appel POSIX sigprocmask(SIG_SETMASK)), et renvoie le masque de signaux précédent du processus.
La fonction siggetmask() renvoie le masque de signaux courant du processus. Cet appel est équivalent à
sigblock(0).
VALEUR RENVOYÉE
Si elle réussit, la fonction sigvec() renvoie 0. Si elle échoue, elle renvoie -1 et écrit errno pour
indiquer l'erreur.
Les fonctions sigblock() et sigsetmask() renvoient le masque de signaux précédent.
La macro sigmask() renvoie le masque de signaux pour signum.
ERREURS
Consultez la section ERREURS des pages de manuel sigaction(2) et sigprocmask(2).
ATTRIBUTS
Multithreading (voir pthreads(7)) Les fonctions sigvec(), sigblock(), sigsetmask() et siggetmask() sont sûres dans un contexte multithread. La macro sigmask() est sûre dans un contexte multithread.
CONFORMITÉ
Toutes ces fonctions étaient dans BSD 4.3, excepté siggetmask(), dont l'origine n'est pas claire. Ces
fonctions sont obsolètes. Ne les utilisez pas dans de nouveaux programmes.
NOTES
Sur BSD 4.3, la fonction signal() fournit une sémantique fiable (comme lorsqu'on appelle sigvec() avec
vec.sv_mask valant 0). Sur System V, la fonction signal() fournit une sémantique non 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.
VOIR AUSSI
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), raise(3), sigpause(3), sigset(3), signal(7)
COLOPHON
Cette page fait partie de la publication 3.65 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
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Alain Portal <http://manpagesfr.free.fr/> (2006). Nicolas François et l'équipe francophone de traduction
de Debian (2006-2009).
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> ».
Linux 24 mars 2014 SIGVEC(3)