OSDN Git Service

Update release for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man3 / setjmp.3
index 4fb7d02..74b790c 100644 (file)
@@ -1,5 +1,6 @@
 .\" Written by Michael Haardt, Fri Nov 25 14:51:42 MET 1994
 .\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
 .\" GNU General Public License for more details.
 .\"
 .\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
 .\" Added sigsetjmp, Sun Mar  2 22:03:05 EST 1997, jrv@vanzandt.mv.com
 .\" Modifications, Sun Feb 26 14:39:45 1995, faith@cs.unc.edu
+.\" "
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
 .\"
 .\" Japanese Version Copyright (c) 1998 Seiiti Obara
 .\"    all rights reserved.
 .\" Modified 2007-12-20, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2009-02-12, Kentaro Shirakata <argrath@ub32.org>
 .\"
-.\"WORD:       stack context        ¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È
-.\"WORD:       signal masks         ¥·¥°¥Ê¥ë¥Þ¥¹¥¯
-.\"WORD:       signal context       ¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È
-.\"WORD:       low-level            Äã¥ì¥Ù¥ë
-.\"
-.TH SETJMP 3 2009-06-26 "" "Linux Programmer's Manual"
-.SH Ì¾Á°
-setjmp, sigsetjmp \- Èó¶É½êŪ¤Ê¥¸¥ã¥ó¥×¤Î¤¿¤á¤Ë¡¢¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È (stack context) ¤òÊݸ¤¹¤ë
-.SH ½ñ¼°
-.B #include <setjmp.h>
+.TH SETJMP 3 2014\-01\-07 "" "Linux Programmer's Manual"
+.SH 名前
+setjmp, sigsetjmp \- 非局所的なジャンプのために、スタックコンテキスト (stack context) を保存する
+.SH 書式
+\fB#include <setjmp.h>\fP
 .sp
 .nf
-.BI "int setjmp(jmp_buf " env );
+\fBint setjmp(jmp_buf \fP\fIenv\fP\fB);\fP
 
-.BI "int sigsetjmp(sigjmp_buf " env ", int " savesigs );
+\fBint sigsetjmp(sigjmp_buf \fP\fIenv\fP\fB, int \fP\fIsavesigs\fP\fB);\fP
 .fi
 .sp
 .in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
-.RB ( feature_test_macros (7)
-»²¾È):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
 .sp
-.BR setjmp ():
-¡ÖÃí°Õ¡×»²¾È¡£
+\fBsetjmp\fP(): 「注意」参照。
 .br
-.BR sigsetjmp ():
-_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE
-.SH ÀâÌÀ
-.BR setjmp ()
-¤È
-.BR longjmp (3)
-¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÄã¥ì¥Ù¥ë¤Ê¥µ¥Ö¥ë¡¼¥Á¥ó
-¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼¤ä³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤¿»þ¤Î½èÍý¤ËÊØÍø¤Ç¤¢¤ë¡£
-.BR setjmp ()
-¤Ï¡¢
-.BR longjmp (3)
-¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë \fIenv\fP ¤Ë
-¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È/¥¹¥¿¥Ã¥¯´Ä¶­¤òÊݸ¤¹¤ë¡£
-.BR setjmp ()
-¤ò¸Æ¤Ó½Ð¤·¤¿
-´Ø¿ô¤¬ÊÖ¤ë¤È¤­¤Ë¡¢¤½¤Î¥¹¥¿¥Ã¥¯¥³¥ó¥Æ¥­¥¹¥È¤Ï̵¸ú¤Ë¤Ê¤ë¡£
+\fBsigsetjmp\fP(): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE ||
+_POSIX_C_SOURCE
+.SH 説明
+\fBsetjmp\fP()  と \fBlongjmp\fP(3)  は、プログラムの低レベルなサブルーチン
+において、エラーや割り込みが発生した時の処理に便利である。 \fBsetjmp\fP()  は、 \fBlongjmp\fP(3)  によって使われる \fIenv\fP
+に スタックコンテキスト/スタック環境を保存する。 \fBsetjmp\fP()  を呼び出した 関数が返るときに、そのスタックコンテキストは無効になる。
 .P
-.BR sigsetjmp ()
-¤â
-.BR setjmp ()
-¤ÈƱÍͤǤ¢¤ë¡£
-\fIsavesigs\fP ¤¬ 0 °Ê³°¤Î¾ì¹ç¡¢
-¤³¤Î¥×¥í¥»¥¹¤Î¸½ºß¤Î¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤â \fIenv\fP ¤ËÊݸ¤µ¤ì¡¢
-¤³¤Î¥·¥°¥Ê¥ë¤Ï¸å¤Ç
-.BR siglongjmp (3)
-¤¬¤³¤Î \fIenv\fP ¤Ç¼Â¹Ô¤µ¤ì¤¿ºÝ¤ËÉü¸µ¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
-ľÀÜÊ֤äƤ¯¤ë¤È¤­¤Ï¡¢
-.BR setjmp ()
-¤È
-.BR sigsetjmp ()
-¤Ï 0 ¤òÊÖ¤·¡¢Êݸ¤·¤¿¥³¥ó¥Æ¥­¥¹¥È¤ò»È¤Ã¤Æ
-.BR longjmp (3)
-¤ä
-.BR siglongjmp (3)
-¤«¤éÊ֤äƤ¯¤ë¤È¤­¤Ï 0 °Ê³°¤òÊÖ¤¹¡£
-.SH ½àµò
-.BR setjmp ()
-¤Ï C89, C99, POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
-.BR sigsetjmp ()
-¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-POSIX ¤Ï¡¢
-.BR setjmp ()
-¤¬¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤¹¤Ù¤­¤«¤É¤¦¤«¤òµ¬Äꤷ¤Æ¤¤¤Ê¤¤¡£
-System V ¤Ç¤ÏÊݸ¤·¤Ê¤¤¡£
-4.3BSD ¤Ç¤ÏÊݸ¤¹¤ë;
-4.3BSD ¤Ë¤Ï¥·¥°¥Ê¥ë¥³¥ó¥Æ¥­¥¹¥È¤òÊݸ¤·¤Ê¤¤´Ø¿ô \fB_setjmp\fP ¤â¤¢¤ë¡£
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢Linux/glibc ¤Ï System V ¤Î¿¶¤ëÉñ¤¤¤Ë½¾¤¦¤¬¡¢
-.B _BSD_SOURCE
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¡¢
-.BR _POSIX_SOURCE ,
-.BR _POSIX_C_SOURCE ,
-.BR _XOPEN_SOURCE ,
-.BR _XOPEN_SOURCE_EXTENDED ,
-.BR _GNU_SOURCE ,
-.B _SVID_SOURCE
-¤Î¤¤¤º¤ì¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ï BSD ¤Î¿¶¤ëÉñ¤¤¤È¤Ê¤ë¡£
+\fBsigsetjmp\fP()  も \fBsetjmp\fP()  と同様である。 \fIsavesigs\fP が 0 以外の場合、
+このプロセスの現在のシグナルマスクも \fIenv\fP に保存され、 このシグナルは後で \fBsiglongjmp\fP(3)  がこの \fIenv\fP
+で実行された際に復元される。
+.SH 返り値
+直接返ってくるときは、 \fBsetjmp\fP()  と \fBsigsetjmp\fP()  は 0 を返し、保存したコンテキストを使って
+\fBlongjmp\fP(3)  や \fBsiglongjmp\fP(3)  から返ってくるときは 0 以外を返す。
+.SH 準拠
+\fBsetjmp\fP()  は C89, C99, POSIX.1\-2001 で規定されている。 \fBsigsetjmp\fP()  は
+POSIX.1\-2001 で規定されている。
+.SH 注意
+POSIX は、 (\fBlongjmp\fP() 中で後で復元できるように) \fBsetjmp\fP() がシグナルマスクを保存すべきかどうかを規定していない。
+System V では保存しない。 4.3BSD では保存する; 4.3BSD にはシグナルコンテキストを保存しない関数 \fB_setjmp\fP もある。
+バージョン 2.19 より前の glibc を使う Linux では、 \fBsetjmp\fP() はデフォルトでは System V の振る舞いに従うが、
+\fB_BSD_SOURCE\fP 機能検査マクロが定義され、 \fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP,
+\fB_XOPEN_SOURCE\fP, \fB_XOPEN_SOURCE_EXTENDED\fP, \fB_GNU_SOURCE\fP, \fB_SVID_SOURCE\fP
+のいずれも定義されていない時は BSD の振る舞いとなる。 glibc 2.19 以降では、 \fI<setjmp.h>\fP は
+System V 版の \fBsetjmp\fP() のみを公開するようになっている。 BSD の動作を必要とするプログラムでは、 \fBsetjmp\fP()
+の呼び出しを、 \fIsavesigs\fP 引き数に 0 以外の値を渡す \fBsigsetjmp\fP() に置き換えるべきである。
 
-°Ü¿¢À­¤Î¤¢¤ë·Á¤Ç¥·¥°¥Ê¥ë¥Þ¥¹¥¯¤òÊݸ¤ª¤è¤ÓÉü¸µ¤·¤¿¤¤¤Î¤Ê¤é¡¢
-.BR sigsetjmp ()
-¤È
-.BR siglongjmp ()
-¤ò»È¤¦¤³¤È¡£
+移植性のある形でシグナルマスクを保存および復元したいのなら、 \fBsigsetjmp\fP()  と \fBsiglongjmp\fP(3)  を使うこと。
 .P
-.BR setjmp ()
-¤ä
-.BR sigsetjmp ()
-¤ò»È¤¦¤È¡¢¥×¥í¥°¥é¥à¤ÏÍý²ò¤·¤Å¤é¤¯¡¢Êݼ餷¤Ë¤¯¤¤¤â¤Î¤Ë¤Ê¤ë¡£
-Ê̤ÎÊýË¡¤¬²Äǽ¤Ê¤é¡¢¤½¤ì¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR longjmp (3),
-.BR siglongjmp (3)
+\fBsetjmp\fP()  や \fBsigsetjmp\fP()  を使うと、プログラムは理解しづらく、保守しにくいものになる。
+別の方法が可能なら、それを使うべきである。
+.SH 関連項目
+\fBlongjmp\fP(3), \fBsiglongjmp\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。