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