SIGSUSPEND(2)

NOM
sigsuspend - Attendre un signal

SYNOPSIS
#include <signal.h>

int sigsuspend(const sigset_t *mask);

DESCRIPTION
sigsuspend() remplace 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 signaux 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 signaux 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 des signaux du processus.

VALEUR RENVOYÉE
sigsuspend() renvoie toujours -1, normalement avec l'erreur EINTR.

ERREURS

EFAULT
    mask pointe sur de la mémoire qui n'est pas une partie valide dans l'espace adressable 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 bloque d'abord 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 qui a été renvoyé par sigprocmask(2) (dans l'argument oldset).

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

VOIR AUSSI
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(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 décembre 2007.

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.