linux c-setjmp,longjmp
来源:互联网 发布:我的世界枪械js手机版 编辑:程序博客网 时间:2024/06/07 06:39
在<setjmp.h>中,定义了setjmp(jmp_buf envbuf),longjmp(jmp_buf envbuf,int val)
在第一次调用setjmp()的时候其返回值是0;
longjmp函数中的参数envbuf是由setjmp函数所保存的堆栈环境,参数val设置setjmp函数的返回值。longjmp函数本身是没有返回值的,它执行后跳转到保存envbuf参数的setjmp函数调用,并由setjmp函数调用返回,此时setjmp函数的返回值就是val。
因为一个setjmp()可以对应多个longjmp()
#include <stdio.h>
#include <setjmp.h>
jmp_buf buf;
banana(){
printf("in banana() \n");
longjmp(buf,1);
printf("you'll never see this,because i longjmp'd");
}
main()
{
if(setjmp(buf))
printf("back in main\n");
else{
printf("first time through\n");
banana();
}
}<c编程>
- linux c-setjmp,longjmp
- linux C全局跳转函数 setjmp longjmp
- c setjmp 和 longjmp
- C setjmp和longjmp
- c中的setjmp longjmp
- linux 跳转 setjmp longjmp
- Linux C 异常处理:非局部goto jmp_buf/setjmp()/longjmp()
- linux C下的setjmp与longjmp介绍
- setjmp & longjmp in C language
- linux setjmp和longjmp函数
- setjmp longjmp
- setjmp()/longjmp()
- setjmp longjmp
- setjmp longjmp
- setjmp longjmp
- setjmp/longjmp
- setjmp/longjmp
- setjmp&longjmp
- JavaWeb和WebLogic和jsp和servlet设置超时会话超时时间
- SVN版本库的备份、还原、移植(初级篇、中级篇和高级篇) .
- 清除文本框历史记录
- hadoop namenode down的遭遇
- 【数位DP】不要62 HDU2089
- linux c-setjmp,longjmp
- SVN库的迁移 .
- yum apt-get的区别
- http://acm.buaa.edu.cn/problem/533/ AC 自动机加后缀数组
- 字符串分割(C++)
- 2013-4-19百度Android面试记
- Resource is out of sync with the file system......
- Debian下安装中文包和输入法【解决无法显示中文问题】
- ZOJ 3230 Solving the Problems(优先队列)