setjmp

setjmpで、その呼び出した時の実行コンテキスト(実行情報)を保存できる。

C言語関数辞典 - setjmp
いにしえのsetjmp()とlongjmp()、あるいはCの例外とは - Qiita
setjmp | Programming Place Plus C言語編 標準ライブラリのリファレンス

これを呼んで実行コンテキストを保存していれば、後々でこの場所に戻ってくることが出来る。

今回は、setjmpで実行コンテキストを保存するだけ。
0が返ってくるということは、実行コンテキストが保存されたということ。
"ABC"を出力してから、実行コンテキストを保存した上で、"DEF"を出力している。

$ vi setjmp.c
$ gcc setjmp.c -o setjmp
$ ./setjmp 
ABC
DEF
$ 

"DEF"ということは、0が返ってきてるので、実行コンテキストは保存されている。

Sample/c/setjmp/setjmp/src/setjmp at master · bg1bgst333/Sample · GitHub