SETJMP(3)                                                            SETJMP(3)


NAME
       setjmp, longjmp - non-local goto

SYNOPSIS
       #include <setjmp.h>

       setjmp(env)
       jmp_buf env;

       longjmp(env, val)
       jmp_buf env;

       _setjmp(env)
       jmp_buf env;

       _longjmp(env, val)
       jmp_buf env;

DESCRIPTION
       These  routines  are  useful  for  dealing  with  errors and interrupts
       encountered in a low-level subroutine of a program.

       Setjmp saves its stack environment in env for later use by longjmp.  It
       returns value 0.

       Longjmp  restores the environment saved by the last call of setjmp.  It
       then returns in such a way that execution continues as if the  call  of
       setjmp  had  just  returned  the value val to the function that invoked
       setjmp, which must not itself have returned in the interim.  All acces‐
       sible data have values as of the time longjmp was called.

       Setjmp  and  longjmp save and restore the signal mask sigmask(2), while
       _setjmp and _longjmp manipulate only the C stack and registers.

ERRORS
       If the contents of the jmp_buf are corrupted, or correspond to an envi‐
       ronment that has already returned, longjmp calls the routine longjmper
       ror.  If longjmperror returns the program is aborted.  The default ver‐
       sion  of  longjmperror prints the message ‘‘longjmp botch’’ to standard
       error and returns.  User programs wishing to exit more  gracefully  can
       write their own versions of longjmperror.

SEE ALSO
       sigvec(2), sigstack(2), signal(3)


4th Berkeley Distribution       January 9, 1986                      SETJMP(3)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 456
Valid CSS Valid XHTML 1.0 Strict