sigsetjmp(3p) - phpMan

Command: man perldoc info search(apropos)  


SIGSETJMP(P)                                                      SIGSETJMP(P)



NAME
       sigsetjmp - set jump point for a non-local goto

SYNOPSIS
       #include <setjmp.h>

       int sigsetjmp(sigjmp_buf env, int savemask);


DESCRIPTION
       The  sigsetjmp()  function  shall be equivalent to the setjmp() function, except as
       follows:

        * References to setjmp() are equivalent to sigsetjmp().


        * References to longjmp() are equivalent to siglongjmp().


        * If the value of the savemask argument is not 0, sigsetjmp() shall also save  the
          current signal mask of the calling thread as part of the calling environment.


RETURN VALUE
       If  the  return is from a successful direct invocation, sigsetjmp() shall return 0.
       If the return is from a call to siglongjmp(), sigsetjmp() shall return  a  non-zero
       value.

ERRORS
       No errors are defined.

       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       The  distinction  between setjmp()/ longjmp() and sigsetjmp()/ siglongjmp() is only
       significant for programs which use sigaction(), sigprocmask(), or sigsuspend().

       Note that since this function is defined in terms of setjmp(), if savemask is zero,
       it is unspecified whether the signal mask is saved.

RATIONALE
       The  ISO C  standard  specifies  various  restrictions on the usage of the setjmp()
       macro in order to permit implementors to recognize the name in the compiler and not
       implement  an  actual  function.  These  same restrictions apply to the sigsetjmp()
       macro.

       There are processors that cannot easily support these calls, but this was not  con-
       sidered a sufficient reason to exclude them.

       4.2  BSD, 4.3 BSD, and XSI-conformant systems provide functions named _setjmp() and
       _longjmp() that, together with setjmp() and longjmp(), provide the same functional-
       ity  as sigsetjmp() and siglongjmp(). On those systems, setjmp() and longjmp() save
       and restore signal masks, while _setjmp()  and  _longjmp()  do  not.  On  System  V
       Release  3  and  in  corresponding  issues  of the SVID, setjmp() and longjmp() are
       explicitly defined not to save and restore signal masks. In order to permit  exist-
       ing  practice in both cases, the relation of setjmp() and longjmp() to signal masks
       is not specified, and a new set of functions is defined instead.

       The longjmp() and siglongjmp() functions operate as in the previous issue  provided
       the  matching  setjmp()  or sigsetjmp() has been performed in the same thread. Non-
       local jumps into contexts saved by other threads would be at  best  a  questionable
       practice and were not considered worthy of standardization.

FUTURE DIRECTIONS
       None.

SEE ALSO
       siglongjmp()  , signal() , sigprocmask() , sigsuspend() , the Base Definitions vol-
       ume of IEEE Std 1003.1-2001, <setjmp.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 .



POSIX                                2003                         SIGSETJMP(P)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/1.3.41 (Unix) PHP/5.2.5 mod_perl/1.30 mod_gzip/1.3.26.1a
Under GNU General Public License
2009-01-10 09:19 @38.103.63.58 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!