Name
sigprocmask — examine and change blocked signals
Synopsis
#include <signal.h>
int
sigprocmask( |
int |
how, |
| |
const sigset_t * |
set, |
| |
sigset_t * |
oldset); |
DESCRIPTION
sigprocmask() is used to
change the signal mask, the set of currently blocked signals.
The behaviour of the call is dependent on the value of
how, as follows.
SIG_BLOCK
-
The set of blocked signals is the union of the
current set and the set argument.
SIG_UNBLOCK
-
The signals in set are removed from
the current set of blocked signals. It is legal to
attempt to unblock a signal which is not
blocked.
SIG_SETMASK
-
The set of blocked signals is set to the
argument set.
If oldset is
non−null, the previous value of the signal mask is
stored in oldset.
If set is NULL,
then the signal mask is unchanged (i.e., how is ignored), but the
current value of the signal mask is nevertheless returned in
oldset (it is not
NULL).
The use of sigprocmask() is
unspecified in a multithreaded process; see pthread_sigmask(3).
RETURN VALUE
sigprocmask() returns 0 on
success and −1 on error.
ERRORS
EINVAL The value specified
in how was
invalid.
CONFORMING TO
POSIX.1-2001.
NOTES
It is not possible to block SIGKILL or SIGSTOP. Attempts to do so are silently
ignored.
If SIGBUS, SIGFPE, SIGILL, or SIGSEGV are generated while they are
blocked, the result is undefined, unless the signal was
generated by the kill(2), sigqueue(2), or raise(3).
See sigsetops(3) for details on
manipulating signal sets.
SEE ALSO
kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2), pthread_sigmask(3), sigsetops(3), signal(7)
Copyright (c) 2005 Michael Kerrisk
based on earlier work by faith@cs.unc.edu and
Mike Battersby <mib@deakin.edu.au>
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein. The author(s) may not
have taken the same level of care in the production of this manual,
which is licensed free of charge, as they might when working
professionally.
Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.
2005-09-15, mtk, Created new page by splitting off from sigaction.2
|