Provided by: manpages-pt-dev_20040726-4_all bug

NAME

       longjmp, siglongjmp - non-local jump to a saved stack context

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 signal 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)

                                          March 2, 1997                                LONGJMP(3)