longjmp() - C函数
C库函数void longjmp(jmp_buf environment, int value)到jmp_buf环境,恢复由最近一次调用对setjmp()宏在同一程序与correspondingjmp_buf参数调用保存的环境。
声明
以下是longjmp()函数的声明。
void longjmp(jmp_buf environment, int value)
参数
-
environment -- 这是到jmp_buf类型的对象包含了setjmp的调用点恢复环境信息。
-
value -- 这是包括setjmp表达式计算的值。
返回值
这个函数不返回任何值。
例子
下面的例子演示了如何使用longjmp()函数。
#include <stdio.h> #include <stdlib.h> #include <setjmp.h> int main() { int val; jmp_buf env_buffer; /* save calling environment for longjmp */ val = setjmp( env_buffer ); if( val != 0 ) { printf("Returned from a longjmp() with value = %s ", val); exit(0); } printf("Jump function call "); jmpfunction( env_buffer ); return(0); } void jmpfunction(jmp_buf env_buf) { longjmp(env_buf, "yiibaisgitbook.net"); }
让我们编译和运行上面的程序,这将产生以下结果:
Jump function call Returned from a longjmp() with value = yiibaisgitbook.net