Man page - sigmask(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

sigvec

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
VOIR AUSSI
TRADUCTION

NOM

sigvec, sigblock, sigsetmask, siggetmask, sigmask - API signaux BSD

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <signal.h>

[[obsolĂšte]] int sigvec(int sig , const struct sigvec * vec ,
struct sigvec *
ovec );

[[obsolĂšte]] int sigmask(int signum );

[[obsolĂšte]] int sigblock(int mask );
[[obsolĂšte]] int sigsetmask(int
mask );
[[obsolĂšte]] int siggetmask(void);

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

Pour toutes les fonctions ci-dessus :
Depuis la glibc 2.19 :
_DEFAULT_SOURCE
glibc 2.19 et antérieures :
_BSD_SOURCE

DESCRIPTION

Ces fonctions sont fournies dans la glibc comme interface de compatibilitĂ© pour les programmes qui utilisent l’API signaux BSD historique. Cette API est obsolĂšte, les nouvelles applications devraient utiliser l’API signaux POSIX ( sigaction (2), sigprocmask (2), etc.).

La fonction sigvec () configure et/ou rĂ©cupĂšre le dispositif du signal sig (comme l’appel POSIX sigaction (2)). Si vec n’est pas NULL, il pointe sur une structure sigvec qui dĂ©finit le nouveau dispositif pour sig . Si ovec n’est pas NULL, il pointe sur une structure sigvec qui est utilisĂ©e pour renvoyer le dispositif prĂ©cĂ©dent de sig . Pour obtenir le dispositif courant de sig sans le modifier, vous devez spĂ©cifier NULL pour vec , et un pointeur non NULL pour ovec .

Les dispositifs pour SIGKILL et SIGSTOP ne peuvent pas ĂȘtre modifiĂ©s.

La structure sigvec à la forme suivante :

struct sigvec {
void (*sv_handler)(int); /* Dispositif du signal*/
int sv_mask; /* Signaux Ă  bloquer dans le gestionnaire */
int sv_flags; /* Drapeaux */
};

Le champ sv_handler spĂ©cifie le dispositif du signal et est soit l’adresse de la fonction gestionnaire de signal, soit SIG_DFL signifiant que le dispositif par dĂ©faut s’applique au signal, soit SIG_IGN signifiant que le signal est ignorĂ©.

Si sv_handler spĂ©cifie l’adresse d’un gestionnaire de signal, sv_mask spĂ©cifie un masque de signaux qui seront bloquĂ©s pendant que le gestionnaire s’exĂ©cute. De plus, le signal pour lequel le gestionnaire est appelĂ© est Ă©galement bloquĂ©. Toute tentative de bloquer SIGKILL ou SIGSTOP est silencieusement ignorĂ©e.

Si sv_handler spĂ©cifie l’adresse d’un gestionnaire de signal, le champ sv_flags spĂ©cifie des attributs contrĂŽlant ce qui se passe lorsque le gestionnaire est appelĂ©. Ce champ peut contenir zĂ©ro ou plus des attributs suivants :
SV_INTERRUPT

Si le gestionnaire de signaux interrompt un appel systĂšme bloquant, l’appel systĂšme ne sera pas relancĂ© au retour du gestionnaire. À la place, il Ă©chouera avec l’erreur EINTR . Si cet attribut n’est pas spĂ©cifiĂ©, les appels systĂšme sont relancĂ©s par dĂ©faut.

SV_RESETHAND

RĂ©initialiser le dispositif du signal Ă  sa valeur par dĂ©faut avant d’appeler le gestionnaire de signaux. Si cet attribut n’est pas spĂ©cifiĂ©, le gestionnaire reste positionnĂ© jusqu’à ce qu’il soit explicitement supprimĂ© par un appel ultĂ©rieur Ă  sigvec () ou jusqu’à ce que le processus effectue un execve (2).

SV_ONSTACK

GÚre le signal sur la pile de signaux spécifique (historiquement positionné sous BSD avec la fonction obsolÚte sigstack () ; la fonction POSIX qui la remplace est sigaltstack (2)).

La macro sigmask () construit et renvoie un masque de signaux pour signum . Par exemple, on peut initialiser le champ vec.sv_mask passé à sigvec () avec un code tel que le suivant :

vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);
/* Bloquer SIGQUIT et SIGABRT pendant
l’exĂ©cution du gestionnaire */

La fonction sigblock () ajoute les signaux de mask au masque de signaux du processus (comme l’appel POSIX sigprocmask(SIG_BLOCK) ), et renvoie le masque de signaux prĂ©cĂ©dent du processus. Toute tentative de bloquer SIGKILL ou SIGSTOP est silencieusement ignorĂ©e.

La fonction sigsetmask () configure le masque de signaux du processus Ă  la valeur donnĂ©e dans mask (comme l’appel POSIX sigprocmask(SIG_SETMASK) ) et renvoie le masque de signaux prĂ©cĂ©dent du processus.

La fonction siggetmask () renvoie le masque de signaux courant du processus. Cet appel est équivalent à sigblock(0) .

VALEUR RENVOYÉE

Si elle rĂ©ussit, la fonction sigvec () renvoie 0 . Si elle Ă©choue, elle renvoie -1 et dĂ©finit errno pour indiquer l’erreur.

Les fonctions sigblock () et sigsetmask () renvoient le masque de signaux précédent.

La macro sigmask () renvoie le masque de signaux pour signum .

ERREURS

Consultez la section ERREURS des pages de manuel sigaction (2) et sigprocmask (2).

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3864635-1.png

STANDARDS

Aucun.

HISTORIQUE

sigvec ()
sigblock
()
sigmask
()
sigsetmask
()

4.3BSD.

siggetmask ()

Origine incertaine.

sigvec ()

Supprimée dans glibc 2.21.

NOTES

Sur 4.3BSD, la fonction signal () fournit une sĂ©mantique fiable (comme lorsqu’on appelle sigvec () avec vec.sv_mask valant 0). Sur System V, la fonction signal () fournit une sĂ©mantique non fiable. POSIX.1 laisse ces aspects de signal () non spĂ©cifiĂ©s. Consultez signal (2) pour plus de dĂ©tails.

Afin d’attendre un signal, BSD et System V fournissent tous les deux une fonction nommĂ©e sigpause (3), mais cette fonction n’a pas le mĂȘme argument sur les deux systĂšmes. Consultez sigpause (3) pour les dĂ©tails.

VOIR AUSSI

kill (2), pause (2), sigaction (2), signal (2), sigprocmask (2), raise (3), sigpause (3), sigset (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-Pierre Giraud <jean-pierregiraud@neuf.fr>

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@lists.debian.org .