Seth Woolley's Man Viewer

longjmp(3) - longjmp, siglongjmp, longjmp, siglongjmp - non-local jump to a saved stack context - man 3 longjmp

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

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(1,3), int val);
       void siglongjmp(sigjmp_buf env(1,3), int val);

DESCRIPTION
       longjmp()  and  setjmp()  are useful for dealing with errors and inter-
       rupts encountered in(1,8) a low-level subroutine of  a  program.   longjmp()
       restores  the  environment  saved by the last call of setjmp() with the
       corresponding env(1,3) argument.  After longjmp() is completed, program exe-
       cution  continues  as  if(3,n)  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(1,3)
       argument.   If  the  sigsetjmp()  call that set(7,n,1 builtins) this env(1,3) used a nonzero
       savesigs flag, siglongjmp() also restores the set(7,n,1 builtins) of blocked signals.

RETURN VALUE
       These functions never return.

CONFORMING TO
       POSIX

NOTES
       POSIX does not specify whether longjmp will restore the signal(2,7) context.
       If you want to save and restore signal(2,7) 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)

References for this manual (incoming links)