dwww Home | Manual pages | Find package

sigsuspend(2)                 System Calls Manual                sigsuspend(2)

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  ap-
       pelant  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'ap-
       pelant. 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 si-
       gnaux 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 sig-
       procmask(2). Après la fin de la section critique, l'appelant attend les
       signaux avec sigsuspend() utilisé avec le masque renvoyé  par  sigproc-
       mask(2) (dans l'argument oldset).

       Consultez sigsetops(3) pour les détails concernant les ensembles de si-
       gnaux.

   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  posi-
       tionné 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), sigwai-
       tinfo(2), sigsetops(3), sigwait(3), signal(7)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>,  Cédric Boutillier <ce-
       dric.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⟩.

Pages du manuel de Linux 6.03   30 octobre 2022                  sigsuspend(2)

Generated by dwww version 1.15 on Sat Jun 29 00:52:47 CEST 2024.