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

NOM

       pthread_sigmask - Examiner et modifier le masque des signaux bloqués

BIBLIOTHÈQUE

       Bibliothèque de threads POSIX (libpthread, -lpthread)

SYNOPSIS

       #include <signal.h>

       int pthread_sigmask(int how, const sigset_t *set, sigset_t *oldset);

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

       pthread_sigmask() :
           _POSIX_C_SOURCE >= 199506L || _XOPEN_SOURCE >= 500

DESCRIPTION

       La  fonction  pthread_sigmask()  est identique à sigprocmask(2), à la différence près que son utilisation
       dans des programmes multithread est  explicitement  spécifié  dans  POSIX.1.  D'autres  différences  sont
       indiquées dans cette page.

       Pour une description des arguments et du mode d'opération de cette fonction, consultez sigprocmask(2).

VALEUR RENVOYÉE

       En cas de réussite, pthread_sigmask() renvoie 0 ; en cas d'erreur, elle renvoie un numéro d'erreur.

ERREURS

       Consultez sigprocmask(2).

ATTRIBUTS

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

STANDARDS

       POSIX.1-2001, POSIX.1-2008.

NOTES

       Un nouveau thread hérite d'une copie du masque de signaux de son créateur.

       La  fonction  pthread_sigmask() de la glibc ignore silencieusement les tentatives de blocage des deux si‐
       gnaux en temps réel qui sont utilisés en interne par l'implémentation de  threading  de  NPTL.  Consultez
       nptl(7) pour des détails.

EXEMPLES

       Le  programme ci-dessous bloque certains signaux dans le thread principal, puis crée un thread dédié pour
       récupérer ces signaux avec sigwait(3). La session d'interpréteur de commande ci-dessous démontre l'utili‐
       sation du programme.

           $ ./a.out &
           [1] 5423
           $ kill -QUIT %1
           Signal handling thread got signal 3
           $ kill -USR1 %1
           Signal handling thread got signal 10
           $ kill -TERM %1
           [1]+  Terminated              ./a.out

   Source du programme

       #include <errno.h>
       #include <pthread.h>
       #include <signal.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <unistd.h>

       /* Simple error handling functions */

       #define handle_error_en(en, msg) \
               do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)

       static void *
       sig_thread(void *arg)
       {
           sigset_t *set = arg;
           int s, sig;

           for (;;) {
               s = sigwait(set, &sig);
               if (s != 0)
                   handle_error_en(s, "sigwait");
               printf("Signal handling thread got signal %d\n", sig);
           }
       }

       int
       main(void)
       {
           pthread_t thread;
           sigset_t set;
           int s;

           /* Block SIGQUIT and SIGUSR1; other threads created by main()
              will inherit a copy of the signal mask. */

           sigemptyset(&set);
           sigaddset(&set, SIGQUIT);
           sigaddset(&set, SIGUSR1);
           s = pthread_sigmask(SIG_BLOCK, &set, NULL);
           if (s != 0)
               handle_error_en(s, "pthread_sigmask");

           s = pthread_create(&thread, NULL, &sig_thread, &set);
           if (s != 0)
               handle_error_en(s, "pthread_create");

           /* Main thread carries on to create other threads and/or do
              other work. */

           pause();            /* Dummy pause so we can test program */
       }

VOIR AUSSI

       sigaction(2),   sigpending(2),    sigprocmask(2),    pthread_attr_setsigmask_np(3),    pthread_create(3),
       pthread_kill(3), sigsetops(3), pthreads(7), 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>,   Frédéric   Hantrais   <fhan‐
       trais@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 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                   15 décembre 2022                              pthread_sigmask(3)