'\" t .\" Copyright (c) 2007 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .TH sysv_signal 3 2023-03-30 "Linux man-pages 6.04" .SH NAME sysv_signal \- signal handling with System V semantics .SH LIBRARY Standard C library .RI ( libc ", " \-lc ) .SH SYNOPSIS .nf .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" .B #include .PP .B typedef void (*sighandler_t)(int); .PP .BI "sighandler_t sysv_signal(int " signum ", sighandler_t " handler ); .fi .SH DESCRIPTION The .BR sysv_signal () function takes the same arguments, and performs the same task, as .BR signal (2). .PP However .BR sysv_signal () provides the System V unreliable signal semantics, that is: a) the disposition of the signal is reset to the default when the handler is invoked; b) delivery of further instances of the signal is not blocked while the signal handler is executing; and c) if the handler interrupts (certain) blocking system calls, then the system call is not automatically restarted. .SH RETURN VALUE The .BR sysv_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). .ad l .nh .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ .BR sysv_signal () T} Thread safety MT-Safe .TE .hy .ad .sp 1 .SH VERSIONS Use of .BR sysv_signal () should be avoided; use .BR sigaction (2) instead. .PP On older Linux systems, .BR sysv_signal () and .BR signal (2) were equivalent. But on newer systems, .BR signal (2) provides reliable 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 SEE ALSO .BR sigaction (2), .BR signal (2), .BR bsd_signal (3), .BR signal (7)