#define SIG_BLOCK 1 #define SIG_UNBLOCK 2 #define SIG_SETMASK 3 int sigprocmask(int how, sigset_t *set, sigset_t *oldset);
This syscall fetches and/or changes the signal mask of the calling process. The signal mask is the set of signals whose delivery is currently blocked.
If not NULL
, set
can be used for passing a new mask, if not
NULL
, oldset
can be used for getting the existing mask.
The behaviour of the syscall will depend on the value passed to
how
, which can be one of:
SIG_BLOCK
The blocked signals will be a union of the current ones and the passed ones.
SIG_UNBLOCK
The blocked signals will be the current ones minus the passed ones.
SIG_SETMASK
The blocked signals will be the passed ones.
It returns 0
on success and -1
on failure, with the following
errno:
EINVAL
how
is not valid.
EFAULT
A non-NULL
pointer points to not valid memory.