noble (2) rt_sigsuspend.2.gz

Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       sigsuspend, rt_sigsuspend - Attendre un signal

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <signal.h>

       int sigsuspend(const sigset_t *mask);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consulter
   feature_test_macros(7)) :

       sigsuspend() :
           _POSIX_C_SOURCE

DESCRIPTION

       sigsuspend() remplace temporairement le masque de signal du thread appelant par  le  msque
       donné  par  mask,  puis  il suspend le thread jusqu'à ce qu'arrive un signal dont l'action
       consiste à appeler un gestionnaire de signal ou à terminer un 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 thread.

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 des signaux signal(7).

STANDARDS

       POSIX.1-2001, POSIX.1-2008.

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.

   Différences entre bibliothèque C et noyau
       L'appel  système  Linux  d'origine  s'appelait sigsuspend(). Toutefois, avec l'arrivée des
       signaux en temps réel dans Linux 2.2 et de la taille figée, le type sigset_t 32 bits  pris
       en  charge  par  cet  appel  système  ne convenait plus à cet objectif. Par conséquent, un
       nouvel appel système rt_sigsuspend() a été ajouté pour prendre en charge le type  sigset_t
       élargi.  Le  nouvel  appel  système  prend  un  deuxième paramètre, size_t sigsetsize, qui
       indique la taille en octets des jeux de signal positionné  dans  mask.  Ce  paramètre  est
       actuellement  nécessaire  pour  obtenir  la  valeur  sizeof(sigset_t)  (ou  le résultat de
       l'erreur EINVAL). La fonction enveloppe sigsuspend() de la glibc nous cache ces détails en
       appelant de manière transparente rt_sigsuspend() quand le noyau le fournit.

VOIR AUSSI

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

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>,  Cédric  Boutillier
       <cedric.boutillier@gmail.com>, Frédéric Hantrais  <fhantrais@gmail.com>  et  Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.