'\" t .\" Copyright (c) 2007 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .TH bsd_signal 3 2023-07-20 "Linux man-pages 6.05.01" .SH NAME bsd_signal \- signal handling with BSD semantics .SH LIBRARY Standard C library .RI ( libc ", " \-lc ) .SH SYNOPSIS .nf .B #include .PP .B typedef void (*sighandler_t)(int); .PP .BI "sighandler_t bsd_signal(int " signum ", sighandler_t " handler ); .fi .PP .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .PP .BR bsd_signal (): .nf Since glibc 2.26: _XOPEN_SOURCE >= 500 .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED && ! (_POSIX_C_SOURCE >= 200809L) glibc 2.25 and earlier: _XOPEN_SOURCE .fi .SH DESCRIPTION The .BR bsd_signal () function takes the same arguments, and performs the same task, as .BR signal (2). .PP The difference between the two is that .BR bsd_signal () 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 system call, then the system call is automatically restarted. A portable application cannot rely on .BR signal (2) to provide these guarantees. .SH RETURN VALUE The .BR bsd_signal () function returns the previous value of the signal handler, or .B SIG_ERR on error. .SH ERRORS As for .BR signal (2). .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .na .nh .BR bsd_signal () T} Thread safety MT-Safe .TE .sp 1 .SH VERSIONS Use of .BR bsd_signal () should be avoided; use .BR sigaction (2) instead. .PP On modern Linux systems, .BR bsd_signal () and .BR signal (2) are equivalent. But on older systems, .BR signal (2) provided unreliable signal semantics; see .BR signal (2) for details. .PP The use of .I sighandler_t is a GNU extension; this type is defined only if the .B _GNU_SOURCE feature test macro is defined. .SH STANDARDS None. .SH HISTORY 4.2BSD, POSIX.1-2001. Removed in POSIX.1-2008, recommending the use of .BR sigaction (2) instead. .SH SEE ALSO .BR sigaction (2), .BR signal (2), .BR sysv_signal (3), .BR signal (7)