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

Linux                                           4 septembre 2013                                  SIGWAITINFO(2)