Everything

setjmp


現在実行中の関数の実行環境を、指定した記憶域に退避します。

[指定形式]

#include <setjmp.h>

long setjmp(jmp_buf env);

[引数]

env 実行環境を退避する記憶域へのポインタ

[戻り値]

setjmp関数を呼び出した時:0

longjmp関数からのリターン時:0以外

[備考]

setjmp関数により退避された実行環境は、longjmp関数において使用されます。

setjmp関数として呼び出された時のリターン値は0ですが、longjmp関数からリターンしてきた時のリターン値は、longjmp関数で指定した第2引数の値となります。

setjmp関数を複雑な式から呼び出す場合、式の評価の途中結果等の現在の実行環境の一部が失われる可能性があります。setjmp関数はsetjmp関数の結果と定数式の比較という形だけで使用し、複雑な式の中では呼び出さないようにしてください。

setjmp関数へのポインタを使った間接呼び出しはしないでください。