BSD_SIGNAL(3) Library Functions Manual BSD_SIGNAL(3)

bsd_signalsimplified signal facilities


#include <signal.h>

void (*bsd_signal(int sig, void (*func)(int)))(int);

The bsd_signal () function provides a partially compatible interface for programs written to historical system interfaces (see APPLICATION USAGE).

The function call bsd_signal ( sig, func) shall be equivalent to the following:

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.

Upon successful completion, bsd_signal () shall return the previous action for sig. Otherwise, SIG_ERR shall be returned and shall be set to indicate the error.

Refer to sigaction(3) .

None.

This function is a direct replacement for the BSD signal(3) 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(3). The bsd_signal () function differs from signal(3) in that the SA_RESTART flag is set and the SA_RESETHAND is clear when bsd_signal () is used. The state of these flags is not specified for signal(3).

It is recommended that new applications use the sigaction(3) function.

None.

None.

sigaction(3) , sigaddset(3) , sigemptyset(3) , signal(3) , the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <signal.h>

First released in Issue 4, Version 2.

Moved from X/OPEN UNIX extension to BASE.

This function is marked obsolescent.

footer end

December 6, 2001 posix.fail