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

NAME

bsd_signal - simplified signal facilities

SYNOPSIS

[OB XSI] [Option Start] #include <signal.h>

void (*bsd_signal(int
sig, void (*func)(int)))(int); [Option End]

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 ]