bsd_signal(3C) Standard C Library Functions bsd_signal(3C)NAMEbsd_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 differ‐
ent 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 signal
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 spec‐
ified for signal(3UCB).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Standard │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOsigaction(2), sigaddset(3C), sigemptyset(3C), signal(3UCB),
attributes(5), standards(5)SunOS 5.10 24 Jul 2002 bsd_signal(3C)