The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> bsd_signal - simplified signal facilities

#### SYNOPSIS

> ``[OB XSI] #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).

> 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.

#### RETURN VALUE

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

#### ERRORS

> Refer to sigaction().

The following sections are informative.

#### EXAMPLES

> None.

#### APPLICATION 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(). The bsd_signal() function differs from signal() 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().

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

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

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

#### CHANGE HISTORY

> First released in Issue 4, Version 2.

#### Issue 5

> Moved from X/OPEN UNIX extension to BASE.

#### Issue 6

> This function is marked obsolescent.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]