Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <signal.h>

       int sigvec(int sig, const 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 (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).

VERSIONS

       À  partir  de  la  glibc 2.21, la bibliothèque C GNU n'exporte plus la fonction sigvec() comme élément de
       l'ABI. (Pour assurer la rétro-compatibilité, le schéma des versions des symboles de la glibc  continue  à
       exporter l'interface aux binaires liés à des versions plus anciennes de la bibliothèque.)

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌──────────────────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├──────────────────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │ sigvec(), sigmask(), sigblock(), sigsetmask(), siggetmask()          │ Sécurité des threads │ MT-Safe │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       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 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 <tvi‐
       gnaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe  Guérard  <fe‐
       vrier@tigreraye.org>,  Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@de‐
       bian.org>,  Thomas  Huriaux  <thomas.huriaux@gmail.com>,   Nicolas   François   <nicolas.francois@centra‐
       liens.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.boutil‐
       lier@gmail.com>,  Frédéric  Hantrais  <fhantrais@gmail.com>   et   Jean-Pierre   Giraud   <jean-pierregi‐
       raud@neuf.fr>

       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 à  de‐
       bian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.03                    5 février 2023                                        sigvec(3)