\fBsetjmp\fP() は C89, C99, POSIX.1\-2001 で規定されている。 \fBsigsetjmp\fP() は
POSIX.1\-2001 で規定されている。
.SH 注意
-POSIX does not specify whether \fBsetjmp\fP() will save the signal mask (to be
-later restored during \fBlongjmp\fP(3)). In System V it will not. In 4.3BSD
-it will, and there is a function \fB_setjmp\fP that will not. On Linux with
-glibc versions before 2.19, \fBsetjmp\fP() follows the System V behavior by
-default, but the BSD behavior is provided if the \fB_BSD_SOURCE\fP feature test
-macro is defined and none of \fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP,
-\fB_XOPEN_SOURCE\fP, \fB_XOPEN_SOURCE_EXTENDED\fP, \fB_GNU_SOURCE\fP, or
-\fB_SVID_SOURCE\fP is defined. Since glibc 2.19, \fI<setjmp.h>\fP exposes
-only the System V version of \fBsetjmp\fP(). Programs that need the BSD
-semantics should replace calls to \fBsetjmp\fP() with calls to \fBsigsetjmp\fP()
-with a nonzero \fIsavesigs\fP argument.
+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() に置き換えるべきである。
移植性のある形でシグナルマスクを保存および復元したいのなら、 \fBsigsetjmp\fP() と \fBsiglongjmp\fP(3) を使うこと。
.P