BSD_SIGNAL(3C) Standard C Library Functions BSD_SIGNAL(3C)

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 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() 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 the BSD 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 the BSD signal().

ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+

SEE ALSO


sigaction(2), sigaddset(3C), sigemptyset(3C), attributes(7),
standards(7)

May 13, 2017 BSD_SIGNAL(3C)

tribblix@gmail.com :: GitHub :: Privacy