sourCEntral - mobile manpages

pdf

sigsuspend

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 DOT rafin AT laposte DOT net>, Thierry Vignaud <tvignaud AT mandriva DOT com>, François Micaux, Alain Portal <aportal AT univ-montp2 DOT fr>, Jean-Philippe Guérard <fevrier AT tigreraye DOT org>, Jean-Luc Coulon (f5ibh) <jean-luc DOT coulon AT wanadoo DOT fr>, Julien Cristau <jcristau AT debian DOT org>, Thomas Huriaux <thomas DOT huriaux AT gmail DOT com>, Nicolas François <nicolas DOT francois AT centraliens DOT net>, Florentin Duneau <fduneau AT gmail DOT com>, Simon Paillard <simon DOT paillard AT resel DOT enst-bretagne DOT fr>, Denis Barbier <barbier AT debian DOT org>, David Prévot <david AT tilapin DOT org>, Cédric Boutillier <cedric DOT boutillier AT gmail DOT com>, Frédéric Hantrais <fhantrais AT gmail DOT com> et Jean-Philippe MENGUAL <jpmengual AT debian DOT org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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.

pdf