Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

bsd_signal(3c) [opensolaris man page]

bsd_signal(3C)						   Standard C Library Functions 					    bsd_signal(3C)

bsd_signal - simplified signal facilities SYNOPSIS
#include <signal.h> void (*bsd_signal(int sig, void (*func)(int)))(int); DESCRIPTION
The bsd_signal() function provides a partially compatible interface for programs written to historical system interfaces (see USAGE below). The function call bsd_signal(sig, func) has an effect as if implemented as: void (*bsd_signal(int sig, void (*func)(int)))(int) { struct sigaction act, oact; act.sa_handler = func; act.sa_flags = SA_RESTART; sigemptyset(&act.sa_mask); sigaddset(&act.sa_mask, sig); if (sigaction(sig, &act, &oact) == -1) return(SIG_ERR); return(oact.sa_handler); } The handler function should be declared: void handler(int sig); where sig is the signal number. The behavior is undefined if func is a function that takes more than one argument, or an argument of a different type. RETURN VALUES
Upon successful completion, bsd_signal() returns the previous action for sig. Otherwise, SIG_ERR is returned and errno is set to indicate the error. ERRORS
Refer to sigaction(2). USAGE
This function is a direct replacement for the BSD signal(3UCB) function for simple applications that are installing a single-argument sig- nal handler function. If a BSD signal handler function is being installed that expects more than one argument, the application has to be modified to use sigaction(2). The bsd_signal() function differs from signal(3UCB) in that the SA_RESTART flag is set and the SA_RESETHAND will be clear when bsd_signal() is used. The state of these flags is not specified for signal(3UCB). ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ |ATTRIBUTE TYPE |ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
sigaction(2), sigaddset(3C), sigemptyset(3C), signal(3UCB), attributes(5), standards(5) SunOS 5.11 24 Jul 2002 bsd_signal(3C)

Check Out this Related Man Page

BSD_SIGNAL(3)						     Linux Programmer's Manual						     BSD_SIGNAL(3)

bsd_signal - signal handling with BSD semantics SYNOPSIS
#define _XOPEN_SOURCE /* See feature_test_macros(7) */ #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t bsd_signal(int signum, sighandler_t handler); DESCRIPTION
The bsd_signal() function takes the same arguments, and performs the same task, as signal(2). The difference between the two is that 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 signal(2) to provide these guarantees. RETURN VALUE
The bsd_signal() function returns the previous value of the signal handler, or SIG_ERR on error. ERRORS
As for signal(2). CONFORMING TO
4.2BSD, POSIX.1-2001. POSIX.1-2008 removes the specification of bsd_signal(), recommending the use of sigaction(2) instead. NOTES
Use of bsd_signal() should be avoided; use sigaction(2) instead. On modern Linux systems, bsd_signal() and signal(2) are equivalent. But on older systems, signal(2) provided unreliable signal semantics; see signal(2) for details. The use of sighandler_t is a GNU extension; this type is only defined if the _GNU_SOURCE feature test macro is defined. SEE ALSO
sigaction(2), signal(2), sysv_signal(3), signal(7) COLOPHON
This page is part of release 3.44 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at 2009-03-15 BSD_SIGNAL(3)
Man Page