您的位置:首页 > 其它

setjmp和longjmp完成保存上下文和切换上下文的工作

2016-07-24 19:32 337 查看
#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),则为异常退出)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: