Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       sigvec, sigblock, sigsetmask, siggetmask, sigmask - API signaux BSD

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <signal.h>

       [[obsolète]] int sigvec(int sig, const struct sigvec *vec,
                                 struct sigvec *ovec);

       [[obsolète]] int sigmask(int signum);

       [[obsolète]] int sigblock(int mask);
       [[obsolète]] int sigsetmask(int mask);
       [[obsolète]] int siggetmask(void);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consulter
   feature_test_macros(7)) :

       Pour toutes les fonctions ci-dessus :
           Depuis la glibc 2.19 :
               _DEFAULT_SOURCE
           glibc 2.19 et antérieures :
               _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
       définit 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

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │sigvec(), sigmask(), sigblock(), sigsetmask(),          │ Sécurité des threads │ MT-Safe │
       │siggetmask()                                            │                      │         │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       Aucun.

HISTORIQUE

       sigvec()
       sigblock()
       sigmask()
       sigsetmask()
              4.3BSD.

       siggetmask()
              Origine incertaine.

       sigvec()
              Supprimée dans glibc 2.21.

NOTES

       Sur  4.3BSD,  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  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)

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot   <david@tilapin.org>,   Cédric   Boutillier
       <cedric.boutillier@gmail.com>,  Frédéric  Hantrais  <fhantrais@gmail.com>  et  Jean-Pierre
       Giraud <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 à ⟨debian-l10n-french@lists.debian.org⟩.