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 .

IEEE/The Open Group                                   2003                                         BSD_SIGNAL(P)