#include <setjmp.h> int setjmp(jmp_buf env);
setjmp函数的功能是将函数在此处的上下文保存在jmp_buf结构体中,以供longjmp从此结构中恢复过来。若直接调用该函数,返回值为0;若该函数从longjmp调用返回,返回值为非零,由longjmp函数提供。
Void longjmp(jmp_bufenv,intval)
函数的功能是从jmp_buf结构体中恢复函数保存的上下文,该函数不返回,而是从setjmp函数中返回。Val表示从longjmp函数传递给setjmp函数的返回值,如果val为0,setjmp将会返回1,否则返回val。
例子:
返回值为0,2。(程序中exit(0)表示程序正常退出,如果为exit(1),则为异常退出)
返回值为0,2。(程序中exit(0)表示程序正常退出,如果为exit(1),则为异常退出)