Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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 fonctionnalites pour la glibc (consultez
feature_test_macros(7)) :
sigwaitinfo(), sigtimedwait() : _POSIX_C_SOURCE >= 199309L
DESCRIPTION
sigwaitinfo() suspend l'execution du thread appelant jusqu'a ce que
l'un des signaux de l'ensemble set soit recu. (Si l'un des signaux de
l'ensemble set est deja en attente pour le thread appelant,
sigwaitinfo() revient immediatement avec les informations concernant le
signal).
sigwaitinfo() retire le signal de l'ensemble des signaux en attente, et
renvoie le numero 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 recus via sigwaitinfo() sont delivres dans l'ordre
habituel, consultez signal(7) pour plus de details.
sigtimedwait() opere exactement comme sigwaitinfo() mais elle a un
argument supplementaire, 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 deja en
attente, soit avec une erreur si aucun signaux de l'ensemble set
n'etaient disponibles.
VALEUR RENVOY'EE
S'ils reussissent sigwaitinfo() et sigtimedwait() renvoient un numero
de signal (une valeur superieure a zero). S'ils echouent, ils renvoient
-1, et errno contient le code d'erreur.
ERREURS
EAGAIN Aucun signal de l'ensemble set n'a ete recu avant expiration du
delai timeout indique pour sigtimedwait().
EINTR L'appel a ete interrompu par un gestionnaire de signal ;
consultez signal(7). (Un signal autre que ceux presents dans
l'ensemble set.)
EINVAL timeout etait invalide.
CONFORMIT'E
POSIX.1-2001.
NOTES
En utilisation habituelle, l'appelant bloque les signaux de l'ensemble
set au prealable avec un appel sigprocmask(2) (afin que la delivrance
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 multithreade, le signal doit etre bloque dans tous
les threads pour empecher que le signal ne soit delivre a un autre
thread que celui executant sigwaitinfo() ou sigtimedwait().
L'ensemble des signaux qui sont en attente pour une thread donne est
l'union de l'ensemble des signaux specifiquement en attente pour ce
thread et de l'ensemble des signaux en attente pour le processus
lui-meme (consultez signal(7)).
Si plusieurs threads d'un processus sont bloques dans sigwaitinfo() or
sigtimedwait() en attente du ou des memes signaux, un seul des threads
recevra reellement le signal s'il est fourni au processus (dans son
ensemble) ; on ne peut pas savoir quel thread recevra le signal.
POSIX ne specifie pas le comportement si une valeur NULL est indiquee
pour l'argument timeout de sigtimedwait(), permettant par exemple
d'avoir le meme comportement que celui de sigwaitinfo(), ce qui est le
cas sous Linux.
Sous Linux, sigwaitinfo() est une fonction de bibliotheque implementee
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.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe 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'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.