Scroll to navigation

SIGSUSPEND(2) Manuel du programmeur Linux SIGSUSPEND(2)

NOM

sigsuspend - Attendre un signal

SYNOPSIS

#include <signal.h>
int sigsuspend(const sigset_t *mask);

Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :
sigsuspend() : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

DESCRIPTION

L'appel sigsuspend() remplace temporairement le masque de signaux bloqués par celui fourni dans mask puis endort le processus jusqu'à arrivée d'un signal qui déclenche un gestionnaire de signal ou termine le processus.
Si le signal termine le processus, sigsuspend() ne retourne pas à l'appelant. Si le signal est intercepté, sigsuspend() retourne après l'exécution du gestionnaire, et le masque de signaux bloqués est restauré à sa valeur précédant l'appel à sigsuspend().
Il n'est pas possible de bloquer SIGKILL ou SIGSTOP ; spécifier ces signaux dans mask n'a aucun effet sur le masque de signaux du processus.

VALEUR RENVOYÉE

sigsuspend() renvoie toujours -1, et errno est normalement positionné à EINTR.

ERREURS

EFAULT
mask pointe en-dehors de l'espace d'adressage accessible.
EINTR
L'appel a été interrompu par un signal.

CONFORMITÉ

POSIX.1-2001.

NOTES

En général, sigsuspend() est utilisé conjointement avec sigprocmask(2) pour empêcher l'arrivée d'un signal pendant l'exécution d'une section de code critique. L'appelant commence par bloquer les signaux avec sigprocmask(2). Après la fin de la section critique, l'appelant attend les signaux avec sigsuspend() utilisé avec le masque renvoyé par sigprocmask(2) (dans l'argument oldset).
Consultez sigsetops(3) pour les détails 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)

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> ».
19 avril 2013 Linux