Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       bsd_signal - simplified signal facilities

SYNOPSIS

       #include <signal.h>

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

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>

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1,  2003  Edition,  Standard  for Information Technology -- Portable Operating System
       Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003  by
       the  Institute  of  Electrical  and  Electronics Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard,  the  original  IEEE  and  The  Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .