Item | Value |
Header file | setjmp.h |
Declaration | void longjmp(jmp_buf envbuf, int status); |
- The longjmp() function causes program execution to resume at the point of the last call to setjmp().
- longjmp() and setjmp() provide a means of jumping between functions.
The most common use of longjmp() is to return from a deeply nested set of routines when an error occurs.
(C: The Complete Reference, Fourth Edition by Herbert Schildt McGraw-Hill/Osborne 2000
ISBN-10: 0072121246, ISBN-13: 978-0072121247)
#include <setjmp.h>
#include <stdio.h>
jmp_buf ebuf;
void f2(void);
int main(void)
{
int i;
printf("1 ");
i = setjmp(ebuf);
if(i == 0) {
f2();
printf("This will not be printed.");
}
printf("%d", i);
return 0;
}
void f2(void)
{
printf("2 ");
longjmp(ebuf, 3);
}
1 2 3
20.1.longjmp |
| 20.1.1. | longjmp |