setjmp
プログラムの現在の状態を保存します。
int setjmp(
jmp_buf env
);
パラメーター
- env
環境を格納する変数。
戻り値
スタックの環境を格納すると 0 を返します。setjmp が longjmp の呼び出しの結果として返す場合longjmp の value の引数または longjmp の value の引数が 0 の場合setjmp から 1. を返します。エラーの戻り値はありません。
解説
setjmp の関数は longjmp を使用すると後で復元できるスタックの環境を格納します。一緒に使用するとsetjmp と longjmp はローカル goto を実装する方法を示します。呼び出す通常標準を使用せずに呼び出しルーチンのエラー処理コードまたは復元に実行制御を渡すにはこれらの規則が使用されます。
setjmp の呼び出しは env に現在のスタックの環境を格納します。longjmp への後続の呼び出しは setjmp の対応するの呼び出しの直後の位置に格納された環境でコントロールを復元します。定期的な受信するコントロールにアクセスできるすべての変数をレジスタ変数 (を除く) longjmp にが呼び出されたかの値を含みます。
ネイティブ コードからマネージ コードにジャンプするために setjmp を使用することはできません。
メモ setjmp と longjmp は C++ オブジェクトのセマンティクスをサポートしていません。C++ プログラムではC++ 例外処理機構を使用します。
詳細についてはsetjmp を使用してlongjmp を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
setjmp |
<setjmp.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
_fpreset の例を参照してください。
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。