Loading

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 (voir
   feature_test_macros(7)) :

       sigsuspend() : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

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

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

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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