Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       sigwaitinfo, sigtimedwait - Attente synchrone de signaux

SYNOPSIS

       #include <signal.h>

       int sigwaitinfo(const sigset_t *set, siginfo_t *info);

       int sigtimedwait(const sigset_t *set, siginfo_t *info,
                        const struct timespec *timeout);

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

       sigwaitinfo(), sigtimedwait() : _POSIX_C_SOURCE >= 199309L

DESCRIPTION

       sigwaitinfo() suspend l'exécution du thread appelant jusqu'à ce que l'un  des  signaux  de
       l'ensemble  set soit reçu. (Si l'un des signaux de l'ensemble set est déjà en attente pour
       le thread appelant, sigwaitinfo() revient immédiatement avec les  informations  concernant
       le signal).

       sigwaitinfo()  retire le signal de l'ensemble des signaux en attente, et renvoie le numéro
       du signal comme valeur de retour. Si l'argument info n'est pas NULL, alors il sera  rempli
       avec  une  structure du type siginfo_t (consultez sigaction(2)) contenant les informations
       concernant le signal.

       Les signaux reçus  via  sigwaitinfo()  sont  délivrés  dans  l'ordre  habituel,  consultez
       signal(7) pour plus de détails.

       sigtimedwait()   opère   exactement   comme   sigwaitinfo()   mais   elle  a  un  argument
       supplémentaire, timeout, qui permet de fixer une limite maximale au temps  pendant  lequel
       le thread est suspendu. Cet argument est du type :

           struct timespec {
               long    tv_sec;         /* secondes */
               long    tv_nsec;        /* nanosecondes */
           }

       Si  les  deux  champs  de cette structure sont nuls, sigtimedwait() revient tout de suite,
       soit avec des informations sur un signal déjà en attente, soit avec une  erreur  si  aucun
       signaux de l'ensemble set n'étaient disponibles.

VALEUR RENVOYÉE

       S'ils  réussissent  sigwaitinfo()  et  sigtimedwait()  renvoient  un numéro de signal (une
       valeur supérieure à zéro). S'ils échouent, ils renvoient -1, et  errno  contient  le  code
       d'erreur.

ERREURS

       EAGAIN Aucun  signal  de  l'ensemble  set  n'a  été reçu avant expiration du délai timeout
              indiqué pour sigtimedwait().

       EINTR  L'appel a été interrompu par un gestionnaire de signal ; consultez  signal(7).  (Un
              signal autre que ceux présents dans l'ensemble set.)

       EINVAL timeout était invalide.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       En  utilisation  habituelle,  l'appelant bloque les signaux de l'ensemble set au préalable
       avec un appel sigprocmask(2) (afin que la délivrance des signaux ne  se  produise  pas  en
       dehors  de l'appel sigwaitinfo() ou sigtimedwait()) et n'installe pas de gestionnaire pour
       ces signaux. Dans un programme multithreadé, le signal doit  être  bloqué  dans  tous  les
       threads  pour empêcher que le signal ne soit délivré à un autre thread que celui exécutant
       sigwaitinfo() ou sigtimedwait().

       L'ensemble des signaux qui sont en attente pour une thread donné est l'union de l'ensemble
       des  signaux  spécifiquement  en  attente  pour  ce thread et de l'ensemble des signaux en
       attente pour le processus lui-même (consultez signal(7)).

       Si plusieurs threads d'un processus sont bloqués dans sigwaitinfo() or  sigtimedwait()  en
       attente du ou des mêmes signaux, un seul des threads recevra réellement le signal s'il est
       fourni au processus (dans son ensemble) ; on ne peut pas savoir  quel  thread  recevra  le
       signal.

       POSIX  ne  spécifie  pas  le  comportement si une valeur NULL est indiquée pour l'argument
       timeout de sigtimedwait(), permettant par exemple d'avoir le même comportement  que  celui
       de sigwaitinfo(), ce qui est le cas sous Linux.

       Sous  Linux,  sigwaitinfo()  est  une  fonction  de  bibliothèque implémentée au dessus de
       sigtimedwait().

VOIR AUSSI

       kill(2), sigaction(2), signal(2), signalfd(2), sigpending(2), sigprocmask(2), sigqueue(2),
       sigsetops(3), sigwait(3), signal(7), time(7)

COLOPHON

       Cette  page  fait partie de la publication 3.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction  francophone  au  sein  du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <URL:http://www.blaess.fr/christophe/>   (1996-2003),  Alain  Portal
       <URL:http://manpagesfr.free.fr/> (2003-2006). Julien Cristau 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> ».