manipulate current signal mask
() function examines and/or changes
the current signal mask (those signals that are blocked from delivery).
Signals are blocked if they are members of the current signal mask set.
is not null, the action of
() depends on the value of the
, which can be one of the
- The new mask is the union of the current mask and the
- The new mask is the intersection of the current mask and
the complement of the specified set.
- The current mask is replaced by the specified
is not null, it is set to the previous
value of the signal mask. When set
the value of how
is insignificant and the
mask remains unchanged, providing a way to examine the signal mask without
The system quietly disallows
to be blocked.
Only signals which are in the pending state will be blocked. Signals that are
explicitly ignored or for which no handler has been installed and where the
default action is to discard the signal are not held as pending and will be
discarded regardless of the signal mask.
Blocked signals remain in the pending state until another call to
() removes the pending signal(s) from
the mask. If there are unblocked signals that are pending after the signal
mask is updated, at least one will be delivered before
Upon successful completion, the value 0 is returned; otherwise the
value -1 is returned and the global variable
is set to indicate the error.
() call will fail and the signal
mask will be unchanged if one of the following occurs:
- how has a value other than
those listed here.
() function conforms to
IEEE Std 1003.1-2008