In BSD Unix systems, setjmp
and longjmp
also save and restore the set of blocked signals; see Blocking Signals. However, the POSIX.1 standard requires setjmp
and longjmp
not to change the set of blocked signals, and provides an additional pair of functions (sigsetjmp
and sigsetjmp
) to get the BSD behavior.
The behavior of setjmp
and longjmp
in the GNU library is controlled by feature test macros; see Feature Test Macros. The default in the GNU system is the POSIX.1 behavior rather than the BSD behavior.
The facilities in this section are declared in the header file `setjmp.h'.
jmp_buf
, except that it can also store state information about the set of blocked signals.
setjmp
. If savesigs is nonzero, the set of blocked signals is saved in state and will be restored if a siglongjmp
is later performed with this state.
longjmp
except for the type of its state argument. If the sigsetjmp
call that set this state used a nonzero savesigs flag, siglongjmp
also restores the set of blocked signals.