MyWebUniversity.com Home Page
 



Darwin Mac OS X man pages main menu
BSDSIGNAL(3)            BSD Library Functions Manual            BSDSIGNAL(3)

NAME
     bsdsignal -- simplified signal facilities

SYNOPSIS
     ##include <>

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

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

     typedef void (*sigt) (int);

     sigt
     bsdsignal(int sig, sigt func);

DESCRIPTION
     The bsdsignal() function provides a partially compatible interface for
     programs written to historical system interfaces (see USAGE below).

     The function call bsdsignal(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(SIGER);
               return(oact.sahandler);
           }

     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, bsdsignal() returns the previous action for
     sig.  Otherwise, SIGER is returned and errno is set to indicate the
     error.

ERORS
     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 bsdsignal() function differs from signal(3) in that
     the SARESTART flag is set and the SARESETHAND will be clear when
     bsdsignal() 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 bsdsignal() function conforms to IE Std 1003.1-2001 (``POSIX.1'').

BSD                            December 20, 2003                           BSD
Darwin Mac OS X man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™