Linux 编程之非局部跳转:longjmp siglongjmp

Posted 拭心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 编程之非局部跳转:longjmp siglongjmp相关的知识,希望对你有一定的参考价值。

在同一个函数中,我们可以使用 goto 修改程序的执行逻辑。如果在多个函数中,想要修改函数的执行顺序(从一个函数,返回到之前函数的某个预定义逻辑),怎么办呢?

答案是使用 longjmp 或 siglongjmp。

本文主要内容:

文章目录

longjmp 的作用及使用

https://man7.org/linux/man-pages/man3/setjmp.3.html

longjmp 需要和 setjmp 成对使用。

#include <setjmp.h>

typedef long jmp_buf[_JBLEN];
int setjmp(jmp_buf __env) __returns_twice;
__noreturn void longjmp(jmp_buf __env, int __value);

以上是关于Linux 编程之非局部跳转:longjmp siglongjmp的主要内容,如果未能解决你的问题,请参考以下文章

Linux 编程之非局部跳转:longjmp siglongjmp

二十Linux 进程与信号---非局部跳转

非局部跳转函数 setjmp()与longjmp()

(C)非局部跳转语句(setjmp和longjmp)

(C)非局部跳转语句(setjmp和longjmp)

第5章 进程环境_非局部跳转