Provided by: manpages-fr-dev_3.65d1p1-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 en attente. (Si l'un des signaux de l'ensemble set est déjà en attente
       pour le thread appelant, sigwaitinfo() retourne immédiatement).

       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 le tampon vers
       lequel il pointe est utilisé pour renvoyer une  structure  du  type  siginfo_t  (consultez
       sigaction(2)) contenant les informations concernant le signal.

       Si  plusieurs  signaux  de  set  sont  mis  en attente pour l'appelant, le signal récupéré
       sigwaitinfo() est déterminé par les règles de classement habituelles. 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 définir le  temps  pendant  lequel  le  thread  est
       suspendu dans l'attente d'un signal. (Cet intervalle de temps est arrondi à la granularité
       de l'horloge système et cet intervalle peut être modifié légèrement  à  cause  des  délais
       d'ordonnancement du noyau.) 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é mis en attente 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  s'ils
       sont  mis  en  attente  entre deux appels successifs à 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 traité
       conformément à sa disposition  par  défaut  dans  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)).

       Les tentatives pour attendre SIGKILL or SIGSTOP seront ignorées silencieusement.

       Si  plusieurs  threads d'un processus sont bloqués dans sigwaitinfo() ou sigtimedwait() en
       attente du ou des mêmes signaux, un seul des threads recevra réellement le signal s'il est
       mis  en  attente pour le 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(3),
       sigsetops(3), sigwait(3), signal(7), time(7)

COLOPHON

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

TRADUCTION

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

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