1. NOM

sigsuspend - Attendre un signal

2. 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

3. 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.

4. VALEUR RENVOYÉE

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

5. ERREURS

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

6. CONFORMITÉ

POSIX.1-2001.

7. 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.

8. VOIR AUSSI

9. COLOPHON

Cette page fait partie de la publication 3.52 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/.

10. 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 à < >.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».