ABCDEFGHIJKLMNOPQRSTUVWXYZ

longjmp

LONGJMP(3)                     Library functions                    LONGJMP(3)



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 inter-
       rupts 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 exe-
       cution  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 main-
       tain.  If possible an alternative should be used.

SEE ALSO
       setjmp(3), sigsetjmp(3)



                                  1997-03-02                        LONGJMP(3)