bsd_signal(S)
bsd_signal --
simplified signal facilities
Synopsis
cc -lc ...
#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 func function must take exactly one argument and must
return a value of type void.
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
See
sigaction(S).
Usage
This function is a direct replacement for the BSD
signal(S)
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(S).
Backwards comaptibility
The bsd_signal function differs from signal in
that the SA_RESTART flag is set and the SA_RESETHAND wil
be clear when bsd_signal is used.
The state of these flags is not specified for signal.
References
sigaction(S),
signal(S),
sigaddset(S),
sigemptyset(S),
signal(S),
signal 5
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005