NOM¶
sigprocmask - Examiner et modifier les signaux bloqués
SYNOPSIS¶
#include <signal.h>
int sigprocmask(int how, const sigset_t *set,
sigset_t *oldset);
Exigences de macros de test de fonctionnalités pour la glibc (consultez
feature_test_macros(7)) :
sigprocmask() : _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE
|| _POSIX_SOURCE
DESCRIPTION¶
L'appel
sigprocmask() est utilisé pour récupérer et/ou
changer le masque de signaux du thread appelant. Le masque de signaux est
l'ensemble des signaux dont la distribution est actuellement bloquée pour
l'appelant (consultez également
signal(7) pour plus de
détails).
Son comportement est dépendant de la valeur de
how, avec les
conventions suivantes :
- SIG_BLOCK
- L'ensemble des signaux bloqués est l'union de
l'ensemble actuel et de l'argument set.
- SIG_UNBLOCK
- Les signaux dans l'ensemble set sont supprimés
de la liste des signaux bloqués. Il est permis de débloquer un
signal non bloqué.
- SIG_SETMASK
- L'ensemble des signaux bloqués est égal à
l'argument set.
Si
oldset n'est pas NULL, la valeur précédente du masque de
signaux est stockée dans
oldset.
Si
set est NULL, le masque de signaux n'est pas modifié (
how
est donc ignoré), mais la valeur actuelle du masque de signaux est tout
de même renvoyée dans
oldset (s'il n'est pas NULL).
L'utilisation de
sigprocmask() dans un processus multithreadé n'est
pas définie ; consultez
pthread_sigmask(3).
VALEUR RENVOYÉE¶
sigprocmask() renvoie 0 s'il réussit et -1 en cas d'erreur.
ERREURS¶
- EFAULT
- L'un des paramètres set ou oldset pointe
vers une zone mémoire n'appartenant pas à l'espace d'adressage
alloué du processus.
- EINVAL
- La valeur de how est invalide.
POSIX.1-2001.
NOTES¶
Il est impossible de bloquer
SIGKILL or
SIGSTOP avec l'appel
sigprocmask. Les tentatives seront ignorées silencieusement.
Chacun des threads d'un processus a son propre masque de signaux.
Un processus fils créé avec
fork(2) hérite d'une copie du
masque de signaux de son père ; le masque de signaux est
conservé au travers d'un
execve(2).
Si l'un des signaux
SIGBUS,
SIGFPE,
SIGILL ou
SIGSEGV est généré alors qu'il est bloqué, le
résultat est indéfini, sauf si le signal a été
généré par
kill(2),
sigqueue(3) ou
raise(3).
Consultez
sigsetops(3) pour les détails concernant les ensembles de
signaux.
VOIR AUSSI¶
kill(2),
pause(2),
sigaction(2),
signal(2),
sigpending(2),
sigsuspend(2),
pthread_sigmask(3),
sigqueue(3),
sigsetops(3),
signal(7)
COLOPHON¶
Cette page fait partie de la publication 3.44 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
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> ».