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

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.