在同一个函数中,我们可以使用 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);