LONGJMP
Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
longjmp, siglongjmp - 保存されたスタックコンテキスト (stack context)
へのローカルでないジャンプ
書式
#include <setjmp.h>
void longjmp(jmp_buf env, int val);
void siglongjmp(sigjmp_buf env, int val);
glibc 向けの機能検査マクロの要件
(feature_test_macros(7)
参照):
siglongjmp():
_POSIX_C_SOURCE || _XOPEN_SOURCE
説明
longjmp()
と
setjmp(3)
は、プログラムの低レベルなサブルーチン
において、エラーや割り込みが発生した時の処理に便利である。
longjmp()
は、最後に呼び出された
setjmp(3)
によって保存された
環境を引き数 env にとり、これを復元する。
longjmp()
の終了後、
プログラムはあたかも、以前呼び出された
setjmp(3)
が値 val で
戻ってきたように続行される。
longjmp()
は、0 を返すことは出来ない。
もし、
longjmp()
の2番目の引数が 0 として呼ばれたならば、代わりに
1 を返す。
siglongjmp()
は引き数 env の型が異なるのを除いて、
longjmp()
に似ている。savesigs フラグをゼロ以外に指定した
sigsetjmp(3)
コールで設定された env を使用した場合に、
siglongjmp()
は
阻止(block)されていたシグナルを復元する。
返り値
これらの関数は決して(呼び出し側に)返らない。
準拠
longjmp()
は C89, C99, POSIX.1-2001 で規定されている。
siglongjmp()
は POSIX.1-2001 で規定されている。
注意
POSIX は、
longjmp()
がシグナルコンテキスト(signal context) を保存すべきか
どうか特定していない。 もし、シグナルマスクを保存/復帰させたいのなら、
siglongjmp()
を使う。
longjmp()
と
siglongjmp()
はプログラムを理解しづらく、保守し
にくいものにする。別の方法が可能なら、それを使うべきである。
関連項目
setjmp(3),
sigsetjmp(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:50 GMT, November 19, 2007