This chapter continues the description of signals begun in the previous chapter. It focuses on signal handlers, and extends the discussion started in Section 20.4. Among the topics we consider are the following:
how to design a signal handler, which necessitates a discussion of reentrancy and async-signal-safe functions;
alternatives to performing a normal return from a signal handler, in particular, the use of a nonlocal goto for this purpose;
handling of signals on an alternate stack;
the use of the sigaction()
SA_SIGINFO flag to allow a signal handler to
obtain more detailed information about the signal that caused its invocation;
how a blocking system call may be interrupted by a signal handler, and how ...