sigwaitinfo   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 26 juillet 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
sigwaitinfo, sigtimedwait - Attente synchrone de signaux  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#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 fonctionalités pour la glibc (voir feature_test_macros(7)) :

sigwaitinfo(), sigtimedwait() : _POSIX_C_SOURCE >= 199309L  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 en retour de fonction. 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 commee 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 signal de l'ensemble set n'était disponible.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 gestionaire de signal (un signal autre que ceux présents dans l'ensemble set.)
EINVAL
timeout etait invalide.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
POSIX.1-2001.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 en dehors de l'appel sigwaitinfo() ou sigtimedwait()) et n'installe pas de gestionnaire pour ces signaux. Dans un programme multithread, le signal devrait être bloqué dans tous les threads pour empêcher que le signal ne soit délivré à un thread autre que celui qui a appelé 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.

Sous Linux, sigwaitinfo() est une fonction de bibliothèque implémentée sur sigtimedwait().  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
kill(2), sigaction(2), signal(2), signalfd(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsetops(3), signal(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 18 juillet 2003 et révisée le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 sigwaitinfo ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EAGAINERREURS
EINTRERREURS
EINVALERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:51:15, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional