[C言語 標準ライブラリ] setjmp.hの使い方

setjmp.hには、外部の関数にジャンプための型、関数、およびマクロが宣言、定義されています。

スポンサーリンク

jmp_buf

呼び出し環境を保存するための型。
setjmp、longjmpで使用されます。

関数

int setjmp(jmp_buf env)

呼出し環境を、後でlongjmp関数が使用する時のために、envに保存します。
直接の呼出しから復帰するときは0、longjmp関数の呼出しから復帰するときは0以外の値が返されます。

void longjmp(jmp_buf env, int val)

setjmpによって保存された環境を復元します。
longjmpの完了により、対応するsetjmpマクロがvalで指定された値を返したとして、処理が続行されます。
longjmp関数は、setjmpに0を返させることはできず、もしvalが0ならば、setjmpマクロの戻り値は1となります。

コメント