NAME
bsdsignal - signal handling with BSD semantics SYNOPSIS
#define XOPENSOURCE /* See featuretestmacros(7) */
#include
typedef void (*sighandlert)(int); sighandlert bsdsignal(int signum, sighandlert handler); DESCRIPTION The bsdsignal() function takes the same arguments, and performs the same task, as signal(2). The difference between the two is that bsdsignal() is guaranteed to provide reliable signal semantics, that is: a) the disposition of the signal is not reset to the default when the handler is invoked; b) delivery of further instances of the signal is blocked while the signal handler is executing; and c) if the handler interrupts a blocking sys‐ tem call, then the system call is automatically restarted. A portable application cannot rely on signal(2) to provide these guarantees. RETURN VALUE The bsdsignal() function returns the previous value of the signal han‐ dler, or SIGERR on error. ERRORS As for signal(2). ATTRIBUTES For an explanation of the terms used in this section, see attributes(7). ┌─────────────┬───────────────┬─────────┐ │Interface │ Attribute │ Value │ ├─────────────┼───────────────┼─────────┤ │bsdsignal() │ Thread safety │ MT-Safe │ └─────────────┴───────────────┴─────────┘ CONFORMING TO
4.2BSD, POSIX.1-2001. POSIX.1-2008 removes the specification of bsdsignal(), recommending the use of sigaction(2) instead. NOTES Use of bsdsignal() should be avoided; use sigaction(2) instead. On modern Linux systems, bsdsignal() and signal(2) are equivalent. But on older systems, signal(2) provided unreliable signal semantics; see signal(2) for details. The use of sighandlert is a GNU extension; this type is defined only if the GNUSOURCE feature test macro is defined. SEE ALSO sigaction(2), signal(2), sysvsignal(3), signal(7) COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2009-03-15 BSDSIGNAL(3)