C/setjmp.h/setjmp
setjmp: saves the contents of the system stack in envbuf for later use by longjmp()
//Header file: #include <setjmp.h>
//Declaration: int setjmp(jmp_buf envbuf);
//Return: returns zero upon invocation.
#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);
}