C Tutorial/setjmp.h/setjmp

Материал из C\C++ эксперт
Перейти к: навигация, поиск

setjmp

Item Value Header file setjmp.h Declaration int setjmp(jmp_buf envbuf); Function saves the contents of the system stack in the buffer envbuf for later use by longjmp(). Return returns zero upon invocation.


<source lang="cpp">#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);
 }</source>