Name
longjmp function — Performs nonlocal goto
Synopsis
void longjmp(jmp_buf env, int val);
The longjmp
function
bypasses the normal function return and unwinds the call stack to
the point where setjmp
was called
with the same jmp_buf
environment. When setjmp
returns
to its caller, it returns val
; if
val
is 0
, setjmp
returns 1
.
Calling longjmp
is similar
to throwing an exception that is caught at the point of the setjmp
call. One important difference,
however, is that if any objects on the stack would have been
destroyed by throwing an exception, the program’s behavior is
undefined if you call longjmp
.
This is why you should use exceptions instead of longjmp
.
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.