Rechercher une page de manuel
sigwaitinfo
Langue: fr
Version: 7 juin 2002 (ubuntu - 01/11/07)
Section: 2 (Appels système)
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);
DESCRIPTION
sigwaitinfo() suspend l'exécution du processus 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 processus appelant, sigwaitinfo() revient immédiatement avec les informations concernant le signal).sigwaitinfo() retire le signal de la liste des signaux en attente pour le processus, 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 (voir sigaction(2)) contenant les informations concernant le signal.
Les signaux reçus via sigwaitinfo() sont délivrés dans l'ordre habituel, voir 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 d'attente. 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 (un signal autre que ceux présents dans l'ensemble set.)
- EINVAL
- timeout était invalide.
NOTES
En utilisation habituelle, l'appelant bloque les signaux de l'ensemble set au préalable avec un appel sigprocmask() (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().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.
CONFORMITÉ
POSIX.1-2001VOIR AUSSI
kill(2), sigaction(2), signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsetops(3), signal(7)TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006, et mise à disposition sur http://manpagesfr.free.fr/.Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Julien Cristau <jcristau@debian.org> et l'équipe francophone de traduction de Debian.
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> ».
supplémentaires que ton coeur ne se gonfle pas d'orgueil c'est seulement
que tu te fais enculer.
-+- Proverbe taotien -+-
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre