OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man3 / longjmp.3
index c813c17..cd7afd9 100644 (file)
 .\" Translated 1998-05-27, Seiiti Obara <SEO@ma1.seikyou.ne.jp>
 .\" Updated 2009-02-24, Akihiro MOTOKI, LDP v3.19
 .\"
-.\"WORD:       stack context        ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È
-.\"WORD:       signal masks         ¥·¥°¥Ê¥ë¥Þ¥¹¥¯
-.\"WORD:       signal context       ¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È
-.\"WORD:       flag                 ¥Õ¥é¥°
-.\"WORD:       low-level            Äã¥ì¥Ù¥ë
+.\"WORD:       stack context        スタックコンテキスト
+.\"WORD:       signal masks         ã\82·ã\82°ã\83\8aã\83«ã\83\9eã\82¹ã\82¯
+.\"WORD:       signal context       シグナルコンテキスト
+.\"WORD:       flag                 ã\83\95ã\83©ã\82°
+.\"WORD:       low-level            低レベル
 .\"
 .TH LONGJMP 3 2009-01-13 "" "Linux Programmer's Manual"
-.SH Ì¾Á°
-longjmp, siglongjmp \- Êݸ¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context)
-¤Ø¤ÎÈó¶É½êŪ¤Ê¥¸¥ã¥ó¥×
-.SH ½ñ¼°
+.SH 名前
+longjmp, siglongjmp \- 保存されたスタックコンテキスト (stack context)
+への非局所的なジャンプ
+.SH 書式
 .nf
 .B #include <setjmp.h>
 
@@ -48,90 +48,90 @@ longjmp, siglongjmp \- 
 .fi
 .sp
 .in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
 .RB ( feature_test_macros (7)
-»²¾È):
+参照):
 .in
 .sp
 .BR siglongjmp ():
 _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE
-.SH ÀâÌÀ
+.SH 説明
 .BR longjmp ()
-¤È
+と
 .BR setjmp (3)
-¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó¤Ë¤ª¤¤¤Æ¡¢
-¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£
+は、プログラムの低レベルなサブルーチンにおいて、
+エラーや割り込みが発生した時の処理に便利である。
 .BR longjmp ()
-¤Ï¡¢\fIenv\fP °ú¤­¿ô¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿ºÇ¸å¤Î
+は、\fIenv\fP 引き数を指定して呼び出された最後の
 .BR setjmp (3)
-¤Ë¤è¤Ã¤ÆÊݸ¤µ¤ì¤¿´Ä¶­¤òÉü¸µ¤¹¤ë¡£
+によって保存された環境を復元する。
 .BR longjmp ()
-¤Î´°Î»¸å¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¡¢¤Þ¤ë¤ÇÂбþ¤¹¤ë
+の完了後、プログラムの実行は、まるで対応する
 .BR setjmp (3)
-¤Î¸Æ¤Ó½Ð¤·¤¬ÃÍ \fIval\fP ¤ÇÊ֤äÆÍ褿¤«¤è¤¦¤Ë³¹Ô¤µ¤ì¤ë¡£
+の呼び出しが値 \fIval\fP で返って来たかように続行される。
 .BR longjmp ()
-¤Ï 0 ¤òÊÖ¤¹¤è¤¦¤Ë»Ø¼¨¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-ÆóÈÖÌܤΰú¤­¿ô¤Ë 0 ¤ò»ØÄꤷ¤Æ
+は 0 を返すように指示することはできない。
+二番目の引き数に 0 を指定して
 .BR longjmp ()
-¤¬¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ï¡¢Âå¤ï¤ê¤Ë 1 ¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
+が呼ばれた場合は、代わりに 1 が返されることになる。
 .P
 .BR siglongjmp ()
-¤Ï¡¢°ú¤­¿ô \fIenv\fP ¤Î·¿¤¬°Û¤Ê¤ëÅÀ°Ê³°¤Ï¡¢
+は、引き数 \fIenv\fP の型が異なる点以外は、
 .BR longjmp ()
-¤ÈƱÍͤǤ¢¤ë¡£
-\fIenv\fP ¤òÊݸ¤·¤¿
+と同様である。
+\fIenv\fP を保存した
 .BR sigsetjmp (3)
-¤¬ 0 °Ê³°¤Î \fIsavesigs\fP ¥Õ¥é¥°¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ç¡¢
-¤«¤Ä¡¢¤½¤Î¾ì¹ç¤Ë¤Î¤ß¡¢
+が 0 以外の \fIsavesigs\fP フラグで呼び出されていた場合で、
+かつ、その場合にのみ、
 .BR siglongjmp (3)
-¤Ï
+は
 .BR sigsetjmp (3)
-¤è¤êÊݸ¤µ¤ì¤Æ¤¤¤¿¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤ÎÉü¸µ¤ò¹Ô¤¦¡£
-.SH ÊÖ¤êÃÍ
-¤³¤ì¤é¤Î´Ø¿ô¤¬Ê֤뤳¤È¤Ï¤Ê¤¤¡£
-.SH ½àµò
+より保存されていたシグナルマスクの復元を行う。
+.SH 返り値
+これらの関数が返ることはない。
+.SH 準拠
 .BR longjmp ()
-¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
+は C89, C99, POSIX.1-2001 で規定されている。
 .BR siglongjmp ()
-¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-POSIX ¤Ç¤Ï¡¢
+は POSIX.1-2001 で規定されている。
+.SH 注意
+POSIX では、
 .BR longjmp ()
-¤¬¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È (signal context) ¤òÉü¸µ¤¹¤ë¤«¤É¤¦¤«µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤
+がシグナルコンテキスト (signal context) を復元するかどうか規定されていない
 .RB ( setjmp (3)
-¤Ë¤â¾¯¤·¾Ü¤·¤¤¾ðÊ󤬤¢¤ë)¡£
-°Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ç¡¢¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤·Éü¸µ¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
+にも少し詳しい情報がある)。
+移植性のある方法で、シグナルマスクを保存し復元させたい場合には、
 .BR sigsetjmp (3)
-¤È
+と
 .BR siglongjmp ()
-¤ò»È¤¦¤³¤È¡£
+を使うこと。
 .P
-°Ê²¼¤Î¾ò·ï¤¬Á´¤ÆÀ®Î©¤¹¤ë¾ì¹ç¡¢
+以下の条件が全て成立する場合、
 .BR longjmp ()
-¤Î¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¸å¤Î¼«Æ°ÊÑ¿ô¤ÎÃͤÏ̤ÄêµÁ (unspecified) ¤È¤Ê¤ë¡£
+の呼び出しが行われた後の自動変数の値は未定義 (unspecified) となる。
 .IP \(bu 3
-¤½¤Î¼«Æ°ÊÑ¿ô¤¬¡¢Âбþ¤¹¤ë
+その自動変数が、対応する
 .BR setjmp (3)
-¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ã¤¿´Ø¿ô¤Î¥í¡¼¥«¥ëÊÑ¿ô¤Ç¤¢¤ë¡£
+呼び出しを行った関数のローカル変数である。
 .IP \(bu
-¼«Æ°ÊÑ¿ô¤ÎÃͤ¬
+自動変数の値が
 .BR setjmp (3)
-¤È
+と
 .BR longjmp ()
-¤Î´Ö¤ÇÊѹ¹¤µ¤ì¤Æ¤¤¤ë¡£
+の間で変更されている。
 .IP \(bu
 .I volatile
-¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+として宣言されていない。
 .P
-ƱÍͤÎÃí°Õ¤¬
+同様の注意が
 .BR siglongjmp ()
-¤Ë¤â¤¢¤Æ¤Ï¤Þ¤ë¡£
+にもあてはまる。
 .P
 .BR longjmp ()
-¤ä
+や
 .BR siglongjmp ()
-¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÏÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷¤Ë¤¯¤¤¤â¤Î¤Ë¤Ê¤ë¡£
-Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
+を使うと、プログラムは理解しづらく、保守しにくいものになる。
+別の方法が可能なら、それを使うべきである。
+.SH 関連項目
 .BR setjmp (3),
 .BR sigsetjmp (3)