sigprocmask.2 (2010 09)

s
sigprocmask(2) sigprocmask(2)
NAME
sigprocmask() - examine and change blocked signals
SYNOPSIS
#include <signal.h>
int sigprocmask(
int how,
const sigset_t *set ,
sigset_t *oset
);
DESCRIPTION
The sigprocmask()
function allows the calling thread to examine and/or change its signal mask.
If the argument set is not a null pointer, it points to a set of signals to be used to change the currently
blocked set.
The argument how indicates the way in which the set is changed and consists of one of the following
values:
SIG_BLOCK The resulting set will be the union of the current set and the signal set pointed
to by set.
SIG_SETMASK The resulting set will be the signal set pointed to by set.
SIG_UNBLOCK The resulting set will be the intersection of the current set and the complement
of the signal set pointed to by set.
If the argument oset is not a null pointer, the previous mask is stored in the location pointed to by oset .If
set is a null pointer, the value of the argument how is not significant and the thread’s signal mask is
unchanged; thus the call can be used to inquire about currently blocked signals.
If there are any pending unblocked signals after the call to
sigprocmask()
, at least one of those sig-
nals will be delivered before the call to
sigprocmask()
returns.
It is not possible to block those signals which cannot be ignored. This is enforced by the system
without causing an error to be indicated.
If any of the
SIGFPE, SIGILL,orSIGSEGV signals are generated while they are blocked, the result is
undefined, unless the signal was generated by a call to kill() or raise().
If
sigprocmask() fails, the thread’s signal mask is not changed.
RETURN VALUE
Upon successful completion,
sigprocmask()
returns 0. Otherwise 1 is returned, errno is set to
indicate the error, and the thread’s signal mask will be unchanged.
ERRORS
The
sigprocmask() function will fail if:
[EINVAL] The value of the how argument is not equal to one of the defined values.
[EFAULT] set or oset points to an invalid address. The reliable detection of this error is imple-
mentation dependent.
APPLICATION USAGE
Threads Considerations
Each thread maintains its own blocked signal mask. In a single-threaded process,
sigprocmask()
modifies only the calling thread’s blocked signal mask.
Use of this function is unspecified in a multithreaded process.
For more information regarding signals and threads, refer to signal (5).
LWP (Lightweight Processes) Considerations
sigprocmask() modifies only the calling LWP’s blocked signal mask.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)