NAME

     longjmp, siglongjmp - non-local jump to a saved  stack  con-
     text


SYNOPSIS

     #include <setjmp.h>

     void longjmp(jmp_buf env, int val));
     void siglongjmp(sigjmp_buf env, int val));


DESCRIPTION

     longjmp() and setjmp() are useful for  dealing  with  errors
     and  interrupts  encountered  in a low-level subroutine of a
     program.  longjmp() restores the environment  saved  by  the
     last  call  of setjmp() with the corresponding env argument.
     After longjmp() is completed, program execution continues as
     if  the corresponding call of setjmp() had just returned the
     value val.  longjmp() cannot cause 0  to  be  returned.   If
     longjmp  is  invoked  with a second argument of 0, 1 will be
     returned instead.

     siglongjmp() is similar to longjmp() except for the type  of
     its env argument.  If the sigsetjmp() call that set this env
     used a nonzero savesigs flag, siglongjmp() also restores the
     set of blocked signals.


RETURN VALUE

     These functions never return.


CONFORMING TO

     POSIX


NOTES

     POSIX does not specify whether longjmp will restore the sig-
     nal  context.  If you want to save and restore signal masks,
     use siglongjmp.

     longjmp() and siglongjmp() make programs hard to  understand
     and maintain.  If possible an alternative should be used.


SEE ALSO

     setjmp(3), sigsetjmp(3)