C/setjmp.h/longjmp
longjmp: long jump
//Declaration: void longjmp(jmp_buf envbuf, int status);
#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*/