C语言函数库详解(收藏)
longjmp宏时用env变量进行跳转。程序会自动跳转到setjmp宏的返回语句处,此时setjmp的返回值为非0,由longjmp的第二个参数指定。
下面通过例子来理解<setjmp.h>中定义的这两个宏。 例程9-1 非局部跳转演示。 #include <setjmp.h>
jmp_buf env; /*定义jmp_buf类型变量*/ int main(void) {
int value;
value = setjmp(env); /*调用setjmp,为longjmp设置跳转点*/ if (value != 0) {
printf("Longjmp with value %d\n", value); exit(value); /*退出程序*/ }
printf("Jump ... \n");
longjmp(env,1); /*跳转到setjmp语句处 return 0; }
本例程先应用setjmp宏为longjmpsetjmp时返回值为0,中。当程序执行到longjmp时,系统会根据setjmp保存下来的状态envlongjmp的第二个参数设置此时setjmp Jump ...
Longjmp with value 1
一般地,宏和longjmp数中返回。
头文件
在中只定义了两个函数: int signal(int sig, sigfun fname); 和
int raise(int sig);
signal函数的作用是设置某一信号的对应动作。其中参数sig用来指定哪一个信号被设置处理函数。在标准C 中支持的信号如下表。 标准C支持的信号
取值, 说明, 默认执行动作, 使用的操作系统 SIGABRT, 异常中止, 中止程序, UNIX DOS SIGPPE, 算术运算错误, 中止程序, UNIX DOS
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言函数库详解(收藏)(9)在线全文阅读。
相关推荐: