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);

猜你喜欢

转载自blog.csdn.net/u011240877/article/details/123025072