A signal handler is allowed to call signal()
, and if that fails, signal()
returns SIG_ERR
and sets errno
to a positive value. However, if the event that caused a signal was external (not as the result of the program calling abort()
or raise()
), the only functions the signal handler must only may call are _Exit()
or abort()
, or call signal()
on the signal currently being handled, and if signal()
fails, the value of errno
is indeterminate.
...