Documentation Archive Developer
Search
ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



BSD_SIGNAL(3)            BSD Library Functions Manual            BSD_SIGNAL(3)

NAME
     bsd_signal -- simplified signal facilities

SYNOPSIS
     #include <signal.h>

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

     or in an equivalent but easier to read typedef'd version:

     typedef void (*sig_t) (int);

     sig_t
     bsd_signal(int sig, sig_t func);

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 the 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 func(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(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(2).  The bsd_signal() function differs from signal(3) 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
     signal(3).

SEE ALSO
     sigaction(2), sigaddset(3), sigemptyset(3), signal(3)

STANDARDS
     The bsd_signal() function conforms to IEEE Std 1003.1-2001 (``POSIX.1'').

BSD                            December 20, 2003                           BSD