trusty (3) bsd_signal.3posix.gz

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>

       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 .