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)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- CONFORMING TO
-
- NOTES
-
- SEE ALSO
-