dwww Home | Manual pages | Find package

sigvec(3)                  Library Functions Manual                  sigvec(3)

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 compatibi-
       lité  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  signi-
       fiant  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 ges-
       tionnaire s'exécute. De plus, le signal pour lequel le gestionnaire est
       appelé est également bloqué. Toute tentative de bloquer SIGKILL ou SIG-
       STOP 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 attri-
       buts suivants :

       SV_INTERRUPT
              If  the  signal  handler interrupts a blocking system call, then
              upon return from the handler the system call is  not  restarted:
              instead  it fails with the error EINTR. If this flag is not spe-
              cified, then system calls are restarted by default.

       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 à sig-
              vec() 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  si-
       gnum.  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);
                       /* Block SIGQUIT and SIGABRT during
                          handler execution */

       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_SET-
       MASK)), et renvoie le masque de signaux précédent du processus.

       La  fonction  siggetmask() renvoie le masque de signaux courant du pro-
       cessus. 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  sig-
       procmask(2).

VERSIONS
       Starting  with glibc 2.21, the GNU C library no longer exports the sig-
       vec()  function as part of the ABI. (To ensure backward  compatibility,
       the glibc symbol versioning scheme continues to export the interface to
       binaries linked against older versions of the library.)

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

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

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 utili-
       sez pas dans de nouveaux programmes.

NOTES
       On 4.3BSD, the signal()  function provided reliable semantics (as  when
       calling  sigvec()   with vec.sv_mask equal to 0). On System V, signal()
       provides unreliable semantics. POSIX.1 leaves these aspects of signal()
       unspecified. See signal(2)  for further details.

       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  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>,  Cédric Boutillier <ce-
       dric.boutillier@gmail.com> et Frédéric Hantrais <fhantrais@gmail.com>

       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⟩.

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

Generated by dwww version 1.15 on Sat Jun 29 00:27:32 CEST 2024.