Man Linux: Main Page and Category List

NAME

       setjmp - set jump point for a non-local goto

SYNOPSIS

       #include <setjmp.h>

       int setjmp(jmp_buf env);

DESCRIPTION

       A  call  to  setjmp()  shall  save  the  calling environment in its env
       argument for later use by longjmp().

       It is unspecified whether setjmp() is a macro  or  a  function.   If  a
       macro  definition  is suppressed in order to access an actual function,
       or a program defines an external identifier with the name  setjmp,  the
       behavior is undefined.

       An  application  shall ensure that an invocation of setjmp() appears in
       one of the following contexts only:

        * The entire  controlling  expression  of  a  selection  or  iteration
          statement

        * One  operand  of  a  relational  or equality operator with the other
          operand  an  integral  constant  expression,  with   the   resulting
          expression being the entire controlling expression of a selection or
          iteration statement

        * The operand of a unary ’!’ operator with  the  resulting  expression
          being the entire controlling expression of a selection or iteration

        * The  entire  expression of an expression statement (possibly cast to
          void)

       If the invocation  appears  in  any  other  context,  the  behavior  is
       undefined.

RETURN VALUE

       If  the return is from a direct invocation, setjmp() shall return 0. If
       the return is from a call to longjmp(), setjmp() shall  return  a  non-
       zero value.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       In  general,  sigsetjmp()  is  more  useful  in dealing with errors and
       interrupts encountered in a low-level subroutine of a program.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       longjmp()  ,   sigsetjmp()   ,   the   Base   Definitions   volume   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 .