sigvec - phpMan

Command: man perldoc info search(apropos)  


SIGVEC(3)                  Linux Programmer's Manual                 SIGVEC(3)



NAME
       sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API

SYNOPSIS
       #define _BSD_SOURCE
       #include <signal.h>

       int sigvec(int sig, struct sigvec *vec, struct sigvec *ovec);

       int sigmask(int signum);

       int sigblock(int mask);

       int sigsetmask(int mask);

       int siggetmask(void);

DESCRIPTION
       These  functions  are  provided  in glibc as a compatibility interface for programs
       that make use of the historical BSD signal API.  This API is obsolete: new applica-
       tions should use the POSIX signal API (sigaction(2), sigprocmask(2), etc.)

       The  sigvec() function sets and/or gets the disposition of the signal sig (like the
       POSIX sigaction(2)).  If vec is not NULL, it points  to  a  sigvec  structure  that
       defines  the  new  disposition for sig.  If ovec is not NULL, it points to a sigvec
       structure that is used to return the previous disposition of sig.   To  obtain  the
       current  disposition  of  sig without changing it, specify NULL for vec, and a non-
       NULL pointer for ovec.

       The dispositions for SIGKILL and SIGSTOP cannot be changed.

       The sigvec structure has the following form:

       struct sigvec {
           void (*sv_handler)();  /* Signal disposition */
           int    sv_mask;        /* Signals to be blocked in handler */
           int    sv_flags;       /* Flags */
       };

       The sv_handler field specifies the disposition of the signal, and  is  either:  the
       address  of  a  signal handler function; or SIG_DFL meaning the default disposition
       applies for the signal; or SIG_IGN meaning that the signal is ignored.

       If sv_handler specifies the address of a signal handler, then sv_mask  specifies  a
       mask  of  signals  that are to be blocked while the handler is executing.  In addi-
       tion, the signal for which the handler is  invoked  is  also  blocked  by  default.
       Attempts to block SIGKILL or SIGSTOP are silently ignored.

       If  sv_handler  specifies  the address of a signal handler, then the sv_flags field
       specifies flags controlling what happens when the handler is  called.   This  field
       may contain zero or more of the following flags:

       SV_INTERRUPT
              If  the  signal  handler interrupts a blocking system call, then upon return
              from the handler the system call will not be restarted: instead it will fail
              with  the error EINTR.  If this flag is not specified, then system calls are
              restarted by default.

       SV_RESETHAND
              Reset the disposition of the signal to the default before calling the signal
              handler.   If  this  flag  is not specified, then the handler remains estab-
              lished until explicitly removed by a later call to  sigvec()  or  until  the
              process performs an execve(2).

       SV_ONSTACK
              Handle  the  signal  on the alternate signal stack (historically established
              under BSD using the obsolete sigstack() function; the POSIX  replacement  is
              sigaltstack()).

       The  sigmask()  function  constructs  and  returns a "signal mask" for signum.  For
       example, we can initialise the vec.sv_mask field given to sigvec() using code  such
       as the following:

           vec.sv_mask = sigmask(SIGQUIT) | sigpause (SIGABRT);
                       /* Block SIGQUIT and SIGABRT during
                          handler execution */

       The sigblock() function adds the signals in mask to the process's signal mask (like
       POSIX sigprocmask(SIG_BLOCK)), and returns  the  process's  previous  signal  mask.
       Attempts to block SIGKILL or SIGSTOP are silently ignored.

       The sigsetmask() function sets the process's signal mask to the value given in mask
       (like POSIX sigprocmask(SIG_SETMASK)), and returns the  process's  previous  signal
       mask.

       The  siggetmask() function returns the process's current signal mask.  This call is
       equivalent to sigblock(0).

RETURN VALUE
       The sigvec() function returns 0 on success; on error, it returns -1 and sets  errno
       to indicate the error.

       The sigblock() and sigsetmask() functions return the previous signal mask.

       The sigmask() function returns the signal mask for signum.

ERRORS
       See the ERRORS under sigaction(2) and sigprocmask(2).

NOTES
       On  4.3BSD,  the  signal()  function  provided  reliable semantics (as when calling
       sigvec() with vec.sv_mask equal to 0).  On System V, signal()  provides  unreliable
       semantics.   POSIX.1-2001  leaves  these aspects of signal() unspecified.  See sig-
       nal(2) for further details.

       In order to wait for a signal, BSD and System V both provided a function named sig-
       pause(),  but  this function has a different argument on the two systems.  See sig-
       pause(3) for details.

CONFORMING TO
       All of these functions  were  in  4.3BSD,  except  siggetmask(),  whose  origin  is
       unclear.  These functions are obsolete: do not use them in new programs.

SEE ALSO
       kill(2),  pause(2), sigaction(2), signal(2), sigprocmask(2), raise(3), sigpause(3),
       sigset(3), signal(7)



Linux 2.6.14                      2005-12-01                         SIGVEC(3)

Generated by $Id: phpMan.php,v 4.54 2007/08/21 09:05:22 chedong Exp $ Author: Che Dong
On Apache/2.2.3 (Red Hat)
Under GNU General Public License
2009-12-24 02:08 @127.0.0.1 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!