NAME
bbssddssiiggnnaall - simplified signal facilities
SYNOPSIS
##iinncclluuddee <
void (* bbssddssiiggnnaall(int sig, void (*func)(int)))(int); or in an equivalent but easier to read typedef'd version: typedef void (*sigt) (int); sigt bbssddssiiggnnaall(int sig, sigt func);> DESCRIPTION
The bbssddssiiggnnaall() function provides a partially compatible interface forprograms written to historical system interfaces (see USAGE below).
The function call bbssddssiiggnnaall(sig, func) has the effect as if implemented as: void (*bsdsignal(int sig, void (*func)(int)))(int) { struct sigaction act, oact; act.sahandler = func; act.saflags = SARESTART; sigemptyset(&act.samask); sigaddset(&act.samask, sig);if (sigaction(sig, &act, &oact) == -1)
return(SIGERR); return(oact.sahandler); } The handler function should be declared: vvooiidd ffuunncc(int sig) where sig is the signal number. The behavior is undefined if ffuunncc() is a function that takes more than one argument, or an argument of a different type.RETURN VALUES
Upon successful completion, bbssddssiiggnnaall() returns the previous action for sig. Otherwise, SIGERR is returned and errno is set to indicate the error. EERRRROORRSS Refer to sigaction(2). UUSSAAGGEE This function is a direct replacement for the BSD signal(3) function forsimple 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 bbssddssiiggnnaall() function differs from signal(3) in that the SARESTART flag is set and the SARESETHAND will be clear when bbssddssiiggnnaall() is used. The state of these flags is not specified for signal(3).SEE ALSO
sigaction(2), sigaddset(3), sigemptyset(3), signal(3) STANDARDSThe bbssddssiiggnnaall() function conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
BSD December 20, 2003 BSD