HP-UX Reference (11i v1 05/09) - 3 Library Functions A-M (vol 6)

b
bsd_signal(3C) bsd_signal(3C)
(TO BE OBSOLETED)
NAME
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 APPLICATION 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 behaviour is undefined if func is a function that takes more than one
argument, or an argument of a different type.
RETURN VALUE
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() .
APPLICATION USAGE
This function is a direct replacement for the BSD signal() function for simple applications that are ins-
talling 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()
. The
bsd_signal() function differs from signal() 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().
WARNINGS
Obsolescent Interfaces
bsd_signal() is to be obsoleted at a future date.
SEE ALSO
sigaction(2), sigaddset(3C), sigemptyset(3C), signal(2), <signal.h>.
HP-UX 11i Version 1: September 2005 1 Hewlett-Packard Company Section 351