SIGSUSPEND(2)

NOM
sigsuspend - Attendre un signal

SYNOPSIS
#include <signal.h>

int sigsuspend(const sigset_t *mask);

DESCRIPTION
sigsuspend() remplace temporairement le masque de signaux du processus appelant avec le masque fourni dans mask et suspend le processus jusqu'à la livraison d'un signal dont l'action est d'invoquer un gestionnaire de signal ou de terminer un processus. Si le signal termine le processus, sigsuspend() ne revient pas. Si le signal est intercepté, sigsuspend() revient après le retour du gestionnaire de signaux, et le masque de signal est restauré dans l'état où il était avant 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, normalement avec l'erreur EINTR.

ERREURS

EFAULT
    mask pointe en dehors de l'espace d'adressage du processus.

EINTR
    L'appel a été interrompu par un signal.

CONFORMITÉ
POSIX.1-2001.

NOTES

Normalement, sigsuspend() est utilisé avec sigprocmask(2) afin de s'affranchir de la livraison d'un signal pendant l'exécution d'un morceau de code critique. L'appelant commence par bloquer les signaux avec sigprocmask(2). Lorsque le code critique est passé, l'appelant attend les signaux par un appel à sigsuspend() avec le masque de signaux renvoyé par sigprocmask(2) (dans l'argument oldset).

Voir sigsetops(3) pour les détails sur la manipulation des ensembles de signaux.

VOIR AUSSI
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3), signal(7)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 14 octobre 1996 et révisée le 17 juillet 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 sigaction ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.