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となります。
コメント