sigsuspend(2) System Calls Manual sigsuspend(2) NOM sigsuspend, rt_sigsuspend - Attendre un signal BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int sigsuspend(const sigset_t *mask); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : sigsuspend() : _POSIX_C_SOURCE DESCRIPTION sigsuspend() remplace temporairement le masque de signal du thread appelant par le msque donne par mask, puis il suspend le thread jusqu'a ce qu'arrive un signal dont l'action consiste a appeler un gestionnaire de signal ou a terminer un processus. Si le signal termine le processus, sigsuspend() ne retourne pas a l'appelant. Si le signal est intercepte, sigsuspend() retourne apres l'execution du gestionnaire, et le masque de signaux bloques est restaure a sa valeur precedant l'appel a sigsuspend(). Il n'est pas possible de bloquer SIGKILL ou SIGSTOP ; specifier ces signaux dans mask n'a aucun effet sur le masque de signaux du thread. VALEUR RENVOYEE sigsuspend() renvoie toujours -1, et errno est normalement positionne a EINTR. ERREURS EFAULT mask pointe en-dehors de l'espace d'adressage accessible. EINTR L'appel a ete interrompu par des signaux signal(7). STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. Differences entre bibliotheque C et noyau L'appel systeme Linux d'origine s'appelait sigsuspend(). Toutefois, avec l'arrivee des signaux en temps reel dans Linux 2.2 et de la taille figee, le type sigset_t 32 bits pris en charge par cet appel systeme ne convenait plus a cet objectif. Par consequent, un nouvel appel systeme rt_sigsuspend() a ete ajoute pour prendre en charge le type sigset_t elargi. Le nouvel appel systeme prend un deuxieme parametre, size_t sigsetsize, qui indique la taille en octets des jeux de signal positionne dans mask. Ce parametre est actuellement necessaire pour obtenir la valeur sizeof(sigset_t) (ou le resultat de l'erreur EINVAL). La fonction enveloppe sigsuspend() de la glibc nous cache ces details en appelant de maniere transparente rt_sigsuspend() quand le noyau le fournit. NOTES En general, sigsuspend() est utilise conjointement avec sigprocmask(2) pour empecher l'arrivee d'un signal pendant l'execution d'une section de code critique. L'appelant commence par bloquer les signaux avec sigprocmask(2). Apres la fin de la section critique, l'appelant attend les signaux avec sigsuspend() utilise avec le masque renvoye par sigprocmask(2) (dans l'argument oldset). Consultez sigsetops(3) pour les details concernant les ensembles de signaux. VOIR AUSSI kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3), signal(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Cedric Boutillier , Frederic Hantrais et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.9.1 2 mai 2024 sigsuspend(2)