OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / draft / man7 / feature_test_macros.7
index 0a690cc..68e15fe 100644 (file)
 .\" Updated 2007-09-08, Akihiro MOTOKI, LDP v2.64
 .\" Updated 2009-04-23, Akihiro MOTOKI, LDP v3.21
 .\"
-.\"WORD:       feature test macro      µ¡Ç½¸¡ºº¥Þ¥¯¥í
-.\"WORD:       feature test macro requirements µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+.\"WORD:       feature test macro      機能検査マクロ
+.\"WORD:       feature test macro requirements 機能検査マクロの要件
 .\"
 .TH FEATURE_TEST_MACROS 7 2010-09-10 "Linux" "Linux Programmer's Manual"
 .\"O .SH NAME
-.SH Ì¾Á°
+.SH 名前
 .\"O feature_test_macros \- feature test macros
-feature_test_macros \- µ¡Ç½¸¡ºº¥Þ¥¯¥í
+feature_test_macros \- 機能検査マクロ
 .\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
 .nf
 .B #include <features.h>
 .fi
 .\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
 .\"O Feature test macros allow the programmer to control the definitions that
 .\"O are exposed by system header files when a program is compiled.
-µ¡Ç½¸¡ºº¥Þ¥¯¥í (feature test macro) ¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥Þ¤Ï
-¥×¥í¥°¥é¥à¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ëºÝ¤Ë¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤ê
-¸ø³«¤µ¤ì¤ëÄêµÁ¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+機能検査マクロ (feature test macro) により、プログラマは
+プログラムがコンパイルされる際にシステムのヘッダファイルにより
+公開される定義を制御することができる。
 
 .\"O .B NOTE:
-.B Ãí°Õ:
+.B 注意:
 .\"O In order to be effective, a feature test macro
 .\"O .IR "must be defined before including any header files" .
 .\"O This can be done either in the compilation command
 .\"O .RI ( "cc \-DMACRO=value" )
 .\"O or by defining the macro within the source code before
 .\"O including any headers.
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òµ¡Ç½¤µ¤»¤ë¤Ë¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤ò
-¡Ö¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¡×¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¤³¤ì¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢
-¥³¥ó¥Ñ¥¤¥ë¥³¥Þ¥ó¥É¤Ç»ØÄꤹ¤ëÊýË¡
+機能検査マクロを機能させるには、機能検査マクロの定義を
+「どのヘッダファイルのインクルードよりも前で」行わなければならない。
+これを実現するには、
+コンパイルコマンドで指定する方法
 .RI ( "cc \-DMACRO=value" )
-¤È¡¢¥½¡¼¥¹¥³¡¼¥ÉÆâ¤ÇɬÍפʥޥ¯¥í¤ÎÄêµÁ¤ò
-¤É¤Î¥Ø¥Ã¥À¤Î¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤¦ÊýË¡¤¬¤¢¤ë¡£
+と、ソースコード内で必要なマクロの定義を
+どのヘッダのインクルードよりも前で行う方法がある。
 
 .\"O Some feature test macros are useful for creating portable applications,
 .\"O by preventing nonstandard definitions from being exposed.
@@ -73,28 +73,28 @@ feature_test_macros \- 
 .\"O can be ascertained by inspecting the
 .\"O .I <features.h>
 .\"O header file.
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò»È¤¦¤È¡¢Èóɸ½à¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¡¢
-°Ü¿¢À­¤Î¤¢¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë¤Î¤ËÌòΩ¤Ä¡£
-¾¤Î¥Þ¥¯¥í¤ò»È¤¦¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¸ø³«¤µ¤ì¤Ê¤¤Èóɸ½à¤ÎÄêµÁ¤ò
-¸ø³«¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-°Ê²¼¤ÇÀâÌÀ¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤½¤ì¤¾¤ì¤ÎÀµ³Î¤Ê±Æ¶Á¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¢
-¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë
+機能検査マクロを使うと、非標準の定義が公開されないようにでき、
+移植性のあるアプリケーションを作成するのに役立つ。
+他のマクロを使うと、デフォルトでは公開されない非標準の定義を
+公開することができる。
+以下で説明する機能検査マクロのそれぞれの正確な影響を確認するには、
+ヘッダファイル
 .I <features.h>
-¤òÄ´¤Ù¤ì¤Ð¤è¤¤¡£
+を調べればよい。
 
 .\"O .SS Specification of feature test macro requirements in manual pages
-.SS ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ç¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï¤Îµ¬Äê
+.SS マニュアルページでの機能検査マクロの要件の規定
 .\"O When a function requires that a feature test macro is defined,
 .\"O the manual page SYNOPSIS typically includes a note of the following form
 .\"O (this example from the
 .\"O .BR acct (2)
 .\"O manual page):
-´Ø¿ô¤¬µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÄêµÁ¤òɬÍפȤ¹¤ë¾ì¹ç¡¢
-¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Î½ñ¼° (SYNOPSIS) ¤ÎÀá¤Ë
-°Ê²¼¤Î·Á¼°¤ÎÃí¼á¤òÆþ¤ì¤ë
-(°Ê²¼¤ÎÎã¤Ï
+関数が機能検査マクロの定義を必要とする場合、
+マニュアルページの書式 (SYNOPSIS) の節に
+以下の形式の注釈を入れる
+(以下の例は
 .BR acct (2)
-¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤«¤é¤Î°úÍѤǤ¢¤ë)¡£
+のマニュアルページからの引用である)。
 .RS 8
 .sp
 .B #include <unistd.h>
@@ -105,9 +105,9 @@ feature_test_macros \- 
 .in -4n
 .\"O Feature Test Macro Requirements for glibc (see
 .\"O .BR feature_test_macros (7)):
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
 .RB ( feature_test_macros (7)
-»²¾È):
+参照):
 .fi
 .in
 .sp
@@ -121,12 +121,12 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500)
 .\"O .IR <unistd.h> ,
 .\"O \fIeither\fP of the following macro
 .\"O definitions must be made before including any header files:
-\fB||\fP ¤Ï¡¢
+\fB||\fP は、
 .BR acct (2)
-¤ÎÄêµÁ¤ò
+の定義を
 .I <unistd.h>
-¤«¤éÆÀ¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥Þ¥¯¥í¤ÎÄêµÁ¤Î¤¤¤º¤ì¤«¤ò¡¢¤É¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î
-¥¤¥ó¥¯¥ë¡¼¥É¤è¤ê¤âÁ°¤Ç¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+から得るには、以下のマクロの定義のいずれかを、どのヘッダファイルの
+インクルードよりも前で行わなければならないことを意味する。
 .RS
 .nf
 
@@ -137,8 +137,8 @@ _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500)
 .PP
 .\"O Alternatively, equivalent definitions can be included in the
 .\"O compilation command:
-Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢Åù²Á¤ÊÄêµÁ¤ò¥³¥ó¥Ñ¥¤¥ëÍѤΥ³¥Þ¥ó¥É¤Ç
-»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£
+別の方法としては、等価な定義をコンパイル用のコマンドで
+指定することもできる。
 .RS
 .nf
 
@@ -152,20 +152,20 @@ cc \-D_XOPEN_SOURCE           # Or any value < 500
 .\"O so that it may not always be necessary to
 .\"O explicitly specify the feature test macro(s) shown in the
 .\"O SYNOPSIS.
-¸å¤Ç½Ò¤Ù¤ë¤¬¡¢
-.B ¡Ö¤¤¤¯¤Ä¤«¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÄêµÁ¤µ¤ì¤ë¡×
-ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
-¤³¤Î¤¿¤á¡¢¡Ö½ñ¼°¡×¤Ëµ­ºÜ¤µ¤ì¤¿µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò¾ï¤Ë
-ÌÀ¼¨Åª¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
+後で述べるが、
+.B 「いくつかの機能検査マクロはデフォルトで定義される」
+点に注意すること。
+このため、「書式」に記載された機能検査マクロを常に
+明示的に指定する必要があるわけではない。
 
 .\"O In a few cases, manual pages use a shorthand for expressing the
 .\"O feature test macro requirements (this example from
 .\"O .BR readahead (2)):
-¤¢¤Þ¤ê¿¤¯¤Ê¤¤¤¬¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤è¤Ã¤Æ¤Ï¡¢
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï¤ò°Ê²¼¤Î¤è¤¦¤Ë´Êñ¤Êɽ¸½¤Çµ­ºÜ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£
-(°Ê²¼¤ÎÎã¤Ï
+あまり多くないが、マニュアルページによっては、
+機能検査マクロの要件を以下のように簡単な表現で記載する場合がある。
+(以下の例は
 .BR readahead (2)
-¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤«¤é¤Î°úÍѤǤ¢¤ë)¡£
+のマニュアルページからの引用である)。
 .RS
 .nf
 
@@ -179,21 +179,21 @@ cc \-D_XOPEN_SOURCE           # Or any value < 500
 .\"O This format is employed in cases where only a single
 .\"O feature test macro can be used to expose the function
 .\"O declaration, and that macro is not defined by default.
-´Ø¿ôÄêµÁ¤Î¸ø³«¤Ë»È¤¨¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤À¤±¤Ç¡¢
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤½¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¤Ë¡¢
-¤³¤Î·Á¼°¤Îɽ¸½¤òÍøÍѤ¹¤ë¡£
+関数定義の公開に使える機能検査マクロが一つだけで、
+デフォルトではそのマクロが定義されない場合に、
+この形式の表現を利用する。
 .\"O .SS Feature test macros understood by glibc
-.SS glibc ¤¬²ò¼á¤¹¤ëµ¡Ç½¸¡ºº¥Þ¥¯¥í
+.SS glibc が解釈する機能検査マクロ
 .\"O The following paragraphs explain how feature test macros are handled
 .\"O in Linux glibc 2.\fIx\fP, \fIx\fP > 0.
-°Ê²¼¤Ç¤Ï¡¢Linux glibc 2.\fIx\fP (\fIx\fP > 0) ¤Ë¤ª¤¤¤Æ¡¢
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë¤«¤òÀâÌÀ¤¹¤ë¡£
+以下では、Linux glibc 2.\fIx\fP (\fIx\fP > 0) において、
+機能検査マクロがどのように扱われるかを説明する。
 .\" The details in glibc 2.0 are simpler, but combining a
 .\" a description of them with the details in later glibc versions
 .\" would make for a complicated description.
 
 .\"O Linux glibc understands the following feature test macros:
-Linux/glibc ¤Ï°Ê²¼¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò²ò¼á¤¹¤ë:
+Linux/glibc は以下の機能検査マクロを解釈する:
 .TP
 .B __STRICT_ANSI__
 .\"O ISO Standard C.
@@ -204,95 +204,95 @@ Linux/glibc 
 .\"O or
 .\"O .I -ansi
 .\"O flag.
-ISO É¸½à¤Î C¡£
+ISO 標準の C。
 .BR gcc (1)
-¤ò
+を
 .I -std=c99
-¤ä
+や
 .I -ansi
-¤Ê¤É¤Î¥Õ¥é¥°¤òÉÕ¤±¤Æµ¯Æ°¤·¤¿¾ì¹ç¡¢
-¤³¤Î¥Þ¥¯¥í¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£
+などのフラグを付けて起動した場合、
+このマクロは暗黙のうちに定義される。
 .TP
 .B _POSIX_C_SOURCE
 .\"O Defining this macro causes header files to expose definitions as follows:
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç
-°Ê²¼¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+このマクロを定義すると、ヘッダファイルで
+以下の定義が公開される。
 .RS
 .IP \(bu 3
 .\"O The value 1 exposes definitions conforming to POSIX.1-1990 and
 .\"O ISO C (1990).
-Ãͤ¬ 1 ¤Î¾ì¹ç¡¢POSIX.1-1990 ¤È ISO C (1990) ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+値が 1 の場合、POSIX.1-1990 と ISO C (1990) に準拠する定義が公開される。
 .IP \(bu
 .\"O The value 2 or greater additionally exposes
 .\"O definitions for POSIX.2-1992.
-Ãͤ¬ 2 °Ê¾å¤Î¾ì¹ç¡¢
-POSIX.2-1992 ´ØÏ¢¤ÎÄêµÁ¤âÄɲäǸø³«¤µ¤ì¤ë¡£
+値が 2 以上の場合、
+POSIX.2-1992 関連の定義も追加で公開される。
 .IP \(bu
 .\"O The value 199309L or greater additionally exposes
 .\"O definitions for POSIX.1b (real-time extensions).
-Ãͤ¬ 199309 °Ê¾å¤Î¾ì¹ç¡¢
-POSIX.1b (¥ê¥¢¥ë¥¿¥¤¥à³ÈÄ¥) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£
+値が 199309 以上の場合、
+POSIX.1b (リアルタイム拡張) 関連の定義が追加で公開される。
 .\" 199506L functionality is only available since glibc 2.1
 .IP \(bu
 .\"O The value 199506L or greater additionally exposes
 .\"O definitions for POSIX.1c (threads).
-Ãͤ¬ 199506 °Ê¾å¤Î¾ì¹ç¡¢
-POSIX.1c (¥¹¥ì¥Ã¥É) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£
+値が 199506 以上の場合、
+POSIX.1c (スレッド) 関連の定義が追加で公開される。
 .IP \(bu
 .\"O (Since glibc 2.3.3)
 .\"O The value 200112L or greater exposes definitions corresponding
 .\"O to the POSIX.1-2001 base specification (excluding the XSI extension).
-(glibc 2.3.3 °Ê¹ß)
-Ãͤ¬ 200112L °Ê¾å¤Î¾ì¹ç¡¢
-(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2001 ´ðËÜ»ÅÍͤËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+(glibc 2.3.3 以降)
+値が 200112L 以上の場合、
+(XSI 拡張を除く) POSIX.1-2001 基本仕様に対応する定義が公開される。
 .IP \(bu
 .\"O (Since glibc 2.10)
 .\"O The value 200809L or greater exposes definitions corresponding
 .\"O to the POSIX.1-2008 base specification (excluding the XSI extension).
-(glibc 2.10 °Ê¹ß)
-Ãͤ¬ 200809L °Ê¾å¤Î¾ì¹ç¡¢
-(XSI ³ÈÄ¥¤ò½ü¤¯) POSIX.1-2008 ´ðËÜ»ÅÍͤËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+(glibc 2.10 以降)
+値が 200809L 以上の場合、
+(XSI 拡張を除く) POSIX.1-2008 基本仕様に対応する定義が公開される。
 .RE
 .TP
 .B _POSIX_SOURCE
 .\"O Defining this obsolete macro with any value is equivalent to defining
 .\"O .B _POSIX_C_SOURCE
 .\"O with the value 1.
-¤³¤Î¥Þ¥¯¥í¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¡£
-¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢Ãͤ˴ؤï¤é¤º¡¢
+このマクロは廃止予定である。
+このマクロが定義されると、値に関わらず、
 .B _POSIX_C_SOURCE
-¤òÃÍ 1 ¤ÇÄêµÁ¤¹¤ë¤Î¤ÈÅù²Á¤È¤Ê¤ë¡£
+を値 1 で定義するのと等価となる。
 .TP
 .B _XOPEN_SOURCE
 .\"O Defining this macro causes header files to expose definitions as follows:
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç°Ê²¼¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+このマクロを定義すると、ヘッダファイルで以下の定義が公開される。
 .RS
 .IP \(bu 3
 .\"O Defining with any value exposes
 .\"O definitions conforming to POSIX.1, POSIX.2, and XPG4.
-¤É¤ó¤ÊÃͤǤ⡢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç
-POSIX.1, POSIX.2, XPG4 ¤Ë½àµò¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+どんな値でも、ヘッダファイルで
+POSIX.1, POSIX.2, XPG4 に準拠する定義が公開される。
 .IP \(bu
 .\"O The value 500 or greater additionally exposes
 .\"O definitions for SUSv2 (UNIX 98).
-Ãͤ¬ 500 °Ê¾å¤Î¾ì¹ç¡¢
-SUSv2 (UNIX 98) ´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£
+値が 500 以上の場合、
+SUSv2 (UNIX 98) 関連の定義が追加で公開される。
 .IP \(bu
 .\"O (Since glibc 2.2) The value 600 or greater additionally exposes
 .\"O definitions for SUSv3 (UNIX 03; i.e., the POSIX.1-2001 base specification
 .\"O plus the XSI extension) and C99 definitions.
-(glibc 2.2 °Ê¹ß)
-Ãͤ¬ 600 °Ê¾å¤Î¾ì¹ç¡¢
-SUSv3 (UNIX 03; POSIX.1-2001 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸)
-´ØÏ¢¤ÎÄêµÁ¤È C99 ¤Ç¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£
+(glibc 2.2 以降)
+値が 600 以上の場合、
+SUSv3 (UNIX 03; POSIX.1-2001 基本仕様 + XSI 拡張と同じ)
+関連の定義と C99 での定義が追加で公開される。
 .IP \(bu
 .\"O (Since glibc 2.10) The value 700 or greater additionally exposes
 .\"O definitions for SUSv4 (i.e., the POSIX.1-2008 base specification
 .\"O plus the XSI extension).
-(glibc 2.10 °Ê¹ß)
-Ãͤ¬ 700 °Ê¾å¤Î¾ì¹ç¡¢
-SUSv4 (POSIX.1-2008 ´ðËÜ»ÅÍÍ + XSI ³ÈÄ¥¤ÈƱ¤¸)
-´ØÏ¢¤ÎÄêµÁ¤¬ÄɲäǸø³«¤µ¤ì¤ë¡£
+(glibc 2.10 以降)
+値が 700 以上の場合、
+SUSv4 (POSIX.1-2008 基本仕様 + XSI 拡張と同じ)
+関連の定義が追加で公開される。
 .RE
 .TP
 .B _XOPEN_SOURCE_EXTENDED
@@ -303,40 +303,40 @@ SUSv4 (POSIX.1-2008 
 .\"O This macro is also implicitly defined if
 .\"O .B _XOPEN_SOURCE
 .\"O is defined with a value of 500 or more.
-¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¡¢¤µ¤é¤Ë
+このマクロが定義され、さらに
 .B _XOPEN_SOURCE
-¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢XPG4v2 (SUSv1) UNIX ³ÈÄ¥ (UNIX 95)
-¤ËÂбþ¤¹¤ëÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+が定義されていると、XPG4v2 (SUSv1) UNIX 拡張 (UNIX 95)
+に対応する定義が公開される。
 .B _XOPEN_SOURCE
-¤¬ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢¤³¤Î¥Þ¥¯¥í¤Ï°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£
+が 500 以上の値で定義された場合、このマクロは暗黙のうちに定義される。
 .TP
 .B _ISOC99_SOURCE
 .\"O Exposes C99 extensions to ISO C (1990).
-ISO C (1990) ¤Î C99 ³ÈÄ¥¤ò¸ø³«¤¹¤ë¡£
+ISO C (1990) の C99 拡張を公開する。
 .\"O This macro is recognized since glibc 2.1.3;
-¤³¤Î¥Þ¥¯¥í¤Ï glibc 2.1.3 °Ê¹ß¤Çǧ¼±¤µ¤ì¤ë¡£
+このマクロは glibc 2.1.3 以降で認識される。
 .\"O earlier glibc 2.1.x versions recognized an equivalent macro named
 .\"O .B _ISOC9X_SOURCE
 .\"O (because the C99 standard had not then been finalized).
 .\"O Although the use of the latter macro is obsolete, glibc continues
 .\"O to recognize it for backward compatibility.
-½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó 2.1.x ¤Î glibc ¤Ç¤Ï¡¢¤³¤ì¤ÈÅù²Á¤Ê
+初期のバージョン 2.1.x の glibc では、これと等価な
 .B _ISOC9X_SOURCE
-¤È¤¤¤¦Ì¾Á°¤Î¥Þ¥¯¥í¤¬»È¤ï¤ì¤Æ¤¤¤¿
-(¤Ê¤¼¤Ê¤é¡¢C99 É¸½à¤Ï¤Þ¤À³ÎÄꤷ¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¢¤ë)¡£
+という名前のマクロが使われていた
+(なぜなら、C99 標準はまだ確定していなかったからである)。
 .B _ISOC9X_SOURCE
-¥Þ¥¯¥í¤Î»ÈÍѤÏÇѻߤµ¤ì¤Æ¤¤¤ë¤¬¡¢
-glibc ¤Ï²áµî¤È¤Î¸ß´¹À­¤Î¤¿¤áº£¤Ç¤â¤³¤Î¥Þ¥¯¥í¤òǧ¼±¤¹¤ë¡£
+マクロの使用は廃止されているが、
+glibc は過去との互換性のため今でもこのマクロを認識する。
 .TP
 .B _LARGEFILE64_SOURCE
 .\"O Expose definitions for the alternative API specified by the
 .\"O LFS (Large File Summit) as a "transitional extension" to the
 .\"O Single UNIX Specification.
 .\"O (See http://opengroup.org/platform/lfs.html.)
-LFS (Large File Summit) ¤Ë¤è¤ê
-"»ÃÄê³ÈÄ¥ (transitional extension)" Single UNIX Specification
-¤È¤·¤Æµ¬Äꤵ¤ì¤¿ÂåÂØ API (alternative API) ¤Ë´Ø¤¹¤ëÄêµÁ¤ò¸ø³«¤¹¤ë
-(http://opengroup.org/platform/lfs.html »²¾È)¡£
+LFS (Large File Summit) により
+"暫定拡張 (transitional extension)" Single UNIX Specification
+として規定された代替 API (alternative API) に関する定義を公開する
+(http://opengroup.org/platform/lfs.html 参照)。
 .\"O The alternative API consists of a set of new objects
 .\"O (i.e., functions and types) whose names are suffixed with "64"
 .\"O (e.g.,
@@ -347,22 +347,22 @@ LFS (Large File Summit) 
 .\"O versus
 .\"O .BR lseek (),
 .\"O etc.).
-ÂåÂØ API ¤Ï¿·µ¬¥ª¥Ö¥¸¥§¥¯¥È (´Ø¿ô¤È·¿) ¤Î½¸¹ç¤Ç¹½À®¤µ¤ì¡¢
-¤½¤Î̾Á°¤Ï "64" ¤Ç½ª¤ï¤ë (Î㤨¤Ð¡¢
+代替 API は新規オブジェクト (関数と型) の集合で構成され、
+その名前は "64" で終わる (例えば、
 .I off_t
-¤ËÂбþ¤¹¤ë¤Î¤Ï
-.IR off64_t ¡¢
+に対応するのは
+.IR off64_t 
 .BR lseek ()
-¤ËÂбþ¤¹¤ë¤Î¤Ï
+に対応するのは
 .BR lseek64 ()
-¤Ç¤¢¤ë)¡£
+である)。
 .\"O New programs should not employ this interface; instead
 .\"O .I _FILE_OFFSET_BITS=64
 .\"O should be employed.
-¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÍøÍѤ·¤Ê¤¤¤³¤È¡£
-Âå¤ï¤ê¤Ë
+新しいプログラムではこのインタフェースを利用しないこと。
+代わりに
 .I _FILE_OFFSET_BITS=64
-¤òÍøÍѤ¹¤ë¤³¤È¡£
+を利用すること。
 .TP
 .B _FILE_OFFSET_BITS
 .\"O Defining this macro with the value 64
@@ -375,15 +375,15 @@ LFS (Large File Summit) 
 .\"O large files with only a recompilation being required.)
 .\"O 64-bit systems naturally permit file sizes greater than 2 Gigabytes,
 .\"O and on those systems this macro has no effect.
-¤³¤Î¥Þ¥¯¥í¤òÃÍ 64 ¤ÇÄêµÁ¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë I/O ¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁàºî¤Ë
-´ØÏ¢¤¹¤ë 32 ¥Ó¥Ã¥ÈÈǤδؿô¤È¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼«Æ°Åª¤Ë 64 ¥Ó¥Ã¥ÈÈǤË
-ÊÑ´¹¤µ¤ì¤ë¡£
-¤³¤ì¤Ï¡¢32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤ÇÂ礭¤Ê¥Õ¥¡¥¤¥ë (> 2 ¥®¥¬¥Ð¥¤¥È) ¤Î I/O
-¤ò¼Â¹Ô¤¹¤ëºÝ¤ËÌòΩ¤Ä
-(¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥ë¤·Ä¾¤¹¤À¤±¤ÇÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò
-°·¤¨¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë)¡£
-64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ï¡¢¤â¤È¤â¤È 2 ¥®¥¬¥Ð¥¤¥È¤è¤êÂ礭¤Ê¥Õ¥¡¥¤¥ë¤ò
-°·¤¨¤ë¤Î¤Ç¡¢64 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¤Ï¤³¤Î¥Þ¥¯¥í¤Ï¸ú²Ì¤ò»ý¤¿¤Ê¤¤¡£
+このマクロを値 64 で定義すると、ファイル I/O とファイルシステム操作に
+関連する 32 ビット版の関数とデータタイプは自動的に 64 ビット版に
+変換される。
+これは、32 ビットシステムで大きなファイル (> 2 ギガバイト) の I/O
+を実行する際に役立つ
+(このマクロを定義すると、コンパイルし直すだけで大きなファイルを
+扱えるプログラムを書くことができる)。
+64 ビットシステムは、もともと 2 ギガバイトより大きなファイルを
+扱えるので、64 ビットシステムではこのマクロは効果を持たない。
 .TP
 .B _BSD_SOURCE
 .\"O Defining this macro with any value causes header files to expose
@@ -398,32 +398,32 @@ LFS (Large File Summit) 
 .\"O or
 .\"O .B _GNU_SOURCE
 .\"O is defined, in which case BSD definitions are disfavored.
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç
-BSD Í³Íè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
-¤Þ¤¿¡¢¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢ÁêÍƤì¤Ê¤¤É¸½à¤¬Â¸ºß¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ
-BSD Í³Íè¤ÎÄêµÁ¤òÍ¥À褹¤ë¤è¤¦¤Ë¤Ê¤ë¡£
-¤¿¤À¤·¡¢
+このマクロを定義すると (値に関わらず) ヘッダファイルで
+BSD 由来の定義が公開される。
+また、このマクロを定義すると、相容れない標準が存在する状況において
+BSD 由来の定義を優先するようになる。
+ただし、
 .BR _SVID_SOURCE ,
 .BR _POSIX_SOURCE ,
 .BR _POSIX_C_SOURCE ,
 .BR _XOPEN_SOURCE ,
 .BR _XOPEN_SOURCE_EXTENDED ,
 .B _GNU_SOURCE
-¤¬°ì¤Ä¤Ç¤âÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢BSD Í³Íè¤ÎÄêµÁ¤ÏÍ¥À褵¤ì¤Ê¤¯¤Ê¤ë¡£
+が一つでも定義された場合には、BSD 由来の定義は優先されなくなる。
 .TP
 .B _SVID_SOURCE
 .\"O Defining this macro with any value causes header files to expose
 .\"O System V-derived definitions.
 .\"O (SVID == System V Interface Definition; see
 .\"O .BR standards (7).)
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç
-System V Í³Íè¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë
+このマクロを定義すると (値に関わらず) ヘッダファイルで
+System V 由来の定義が公開される
 (SVID == System V Interface Definition;
 .BR standards (7)
-»²¾È)¡£
+参照)。
 .TP
 .\"O .BR _ATFILE_SOURCE " (since glibc 2.4)"
-.BR _ATFILE_SOURCE " (glibc 2.4 °Ê¹ß)"
+.BR _ATFILE_SOURCE " (glibc 2.4 以降)"
 .\"O Defining this macro with any value causes header files to expose
 .\"O declarations of a range of functions with the suffix "at";
 .\"O see
@@ -431,14 +431,14 @@ System V ͳ
 .\"O Since glibc 2.10, this macro is also implicitly defined if
 .\"O .BR _POSIX_C_SOURCE
 .\"O is defined with a value greater than or equal to 200809L.
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç
-̾Á°¤ÎËöÈø¤¬ "at" ¤Î³Æ¼ï¤Î´Ø¿ô¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
+このマクロを定義すると (値に関わらず) ヘッダファイルで
+名前の末尾が "at" の各種の関数の定義が公開される。
 .BR openat (2)
-»²¾È¡£
-glibc 2.10 °Ê¹ß¤Ç¤Ï¡¢
+参照。
+glibc 2.10 以降では、
 .B _POSIX_C_SOURCE
-¤¬ 200809L °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢
-¤³¤Î¥Þ¥¯¥í¤â°ÅÌۤΤ¦¤Á¤ËÄêµÁ¤µ¤ì¤ë¡£
+が 200809L 以上の値で定義された場合には、
+このマクロも暗黙のうちに定義される。
 .TP
 .B _GNU_SOURCE
 .\"O Defining this macro (with any value) is equivalent to defining
@@ -461,8 +461,8 @@ glibc 2.10 
 .\"O 500 in glibc versions before 2.2).
 .\"O In addition, various GNU-specific extensions are also exposed.
 .\"O Where standards conflict, BSD definitions are disfavored.
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È (Ãͤ˴ؤï¤é¤º) °Ê²¼¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤Î¤È
-Åù²Á¤Ë¤Ê¤ë:
+このマクロを定義すると (値に関わらず) 以下のマクロを定義するのと
+等価になる:
 .BR _BSD_SOURCE ,
 .BR _SVID_SOURCE ,
 .BR _ATFILE_SOURCE ,
@@ -470,39 +470,39 @@ glibc 2.10 
 .BR _ISOC99_SOURCE ,
 .BR _XOPEN_SOURCE_EXTENDED ,
 .BR _POSIX_SOURCE ,
-ÃÍ 200809L ¤Î
+値 200809L の
 .B _POSIX_C_SOURCE
-(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ200112L¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.5 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ199506L¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ199309L),
-ÃÍ 700 ¤Î
+(バージョン 2.10 より前の glibc では値は 200112L、
+バージョン 2.5 より前の glibc では値は 199506L、
+バージョン 2.1 より前の glibc では値は 199309L),
+値 700 の
 .B _XOPEN_SOURCE
-(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ600¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.2 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ500)¡£
-¤µ¤é¤Ë¡¢³Æ¼ï¤Î GNU ¸ÇÍ­¤Î³ÈÄ¥¤â¸ø³«¤µ¤ì¤ë¡£
-»ØÄꤵ¤ì¤¿É¸½à¤ËÌ·½â¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï¡¢
-BSD Í³Íè¤ÎÄêµÁ¤¬Í¥À褵¤ì¤Ê¤¯¤Ê¤ë¡£
+(バージョン 2.10 より前の glibc では値は 600、
+バージョン 2.2 より前の glibc では値は 500)。
+さらに、各種の GNU 固有の拡張も公開される。
+指定された標準に矛盾があった場合は、
+BSD 由来の定義が優先されなくなる。
 .TP
 .B _REENTRANT
 .\"O Defining this macro exposes definitions of certain reentrant functions.
 .\"O For multithreaded programs, use
 .\"O .I "cc\ \-pthread"
 .\"O instead.
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢¤¤¤¯¤Ä¤«¤Î¥ê¥¨¥ó¥È¥é¥ó¥È (ºÆÆþ²Äǽ) ¤Ê´Ø¿ô
-ÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤³¤ÎÂå¤ï¤ê¤Ë
+このマクロを定義すると、いくつかのリエントラント (再入可能) な関数
+定義が公開される。マルチスレッド・プログラムでは、この代わりに
 .I "cc\ \-pthread"
-¤ò»ÈÍѤ¹¤ë¤³¤È¡£
+を使用すること。
 .TP
 .B _THREAD_SAFE
 .\"O Synonym for
 .\"O .BR _REENTRANT ,
 .\"O provided for compatibility with some other implementations.
 .B _REENTRANT
-¤ÎƱµÁ¸ì¡£
-¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤È¤Î¸ß´¹À­¤òÄ󶡤¹¤ë¤¿¤á¤Î¤â¤Î¡£
+の同義語。
+他のいくつかの実装との互換性を提供するためのもの。
 .TP
 .\"O .BR _FORTIFY_SOURCE " (since glibc 2.3.4)"
-.BR _FORTIFY_SOURCE " (glibc 2.3.4 °Ê¹ß)"
+.BR _FORTIFY_SOURCE " (glibc 2.3.4 以降)"
 .\" For more detail, see:
 .\" http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
 .\" [PATCH] Object size checking to prevent (some) buffer overflows
@@ -513,13 +513,13 @@ BSD ͳ
 .\"O to detect some buffer overflow errors when employing
 .\"O various string and memory manipulation functions.
 .\"O Not all buffer overflows are detected, just some common cases.
-¤³¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤È¡¢Ê¸»úÎó¤ä¥á¥â¥ê¤ÎÁàºî¤ò¹Ô¤¦ÍÍ¡¹¤Ê´Ø¿ô¤ò
-»ÈÍѤ¹¤ëºÝ¤Ë¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Î·Ú¤á¤Î¥Á¥§¥Ã¥¯¤¬
-¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤¹¤Ù¤Æ¤Î¥Ð¥Ã¥Õ¥¡¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬¸¡½Ð¤µ¤ì¤ë
-¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¯¤Þ¤Ç¤è¤¯¤¢¤ëÎã¤Ë¤Ä¤¤¤Æ¤À¤±¤Ç¤¢¤ë¡£
+このマクロを定義すると、文字列やメモリの操作を行う様々な関数を
+使用する際にバッファオーバーフローを検出するための軽めのチェックが
+実行されるようになる。すべてのバッファオーバーフローが検出される
+わけではなく、あくまでよくある例についてだけである。
 .\"O In the current implementation checks are added for
 .\"O calls to
-¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢°Ê²¼¤Î´Ø¿ô¤Ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤Æ¤¤¤ë:
+現在の実装では、以下の関数にチェックが追加されている:
 .BR memcpy (3),
 .BR mempcpy (3),
 .BR memmove (3),
@@ -546,29 +546,29 @@ BSD ͳ
 .\"O set to 2 some more checking is added, but
 .\"O some conforming programs might fail.
 .B _FORTIFY_SOURCE
-¤¬ 1 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¥ì¥Ù¥ë¤¬ 1
+が 1 に設定された場合、コンパイラの最適化レベルが 1
 .RI ( "gcc\ \-O1" )
-¤«¤½¤ì°Ê¾å¤Ç¤¢¤ì¤Ð¡¢µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¿¶¤ëÉñ¤¤¤ò
-ÊѲ½¤µ¤»¤Ê¤¤¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤ë¡£
+かそれ以上であれば、規格に準拠するプログラムの振る舞いを
+変化させないようなチェックが実行される。
 .B _FORTIFY_SOURCE
-¤¬ 2 ¤ËÀßÄꤵ¤ì¤¿¾ì¹ç¡¢¤µ¤é¤Ê¤ë¥Á¥§¥Ã¥¯¤¬Äɲ䵤ì¤ë¤¬¡¢
-µ¬³Ê¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Î¤¤¤¯¤Ä¤«¤¬¼ºÇÔ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
+が 2 に設定された場合、さらなるチェックが追加されるが、
+規格に準拠するプログラムのいくつかが失敗する可能性がある。
 .\"O Some of the checks can be performed at compile time,
 .\"O and result in compiler warnings;
 .\"O other checks take place at run time,
 .\"O and result in a run-time error if the check fails.
-¤¤¤¯¤Ä¤«¤Î¥Á¥§¥Ã¥¯¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¼Â¹Ô¤Ç¤­¡¢¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¤È¤·¤Æ
-ɽ¼¨¤µ¤ì¤ë¡£Â¾¤Î¥Á¥§¥Ã¥¯¤Ï¼Â¹Ô»þ¤Ë¹Ô¤ï¤ì¡¢¥Á¥§¥Ã¥¯¤Ë¼ºÇÔ¤·¤¿¾ì¹ç
-¤Ë¤Ï¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ê¤ë¡£
+いくつかのチェックはコンパイル時に実行でき、コンパイラの警告として
+表示される。他のチェックは実行時に行われ、チェックに失敗した場合
+には実行時エラーとなる。
 .\"O Use of this macro requires compiler support, available with
 .\"O .BR gcc (1)
 .\"O since version 4.0.
-¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤ÎÂбþ¤¬É¬ÍפǤ¢¤ê¡¢
-¥Ð¡¼¥¸¥ç¥ó 4.0 °Ê¹ß¤Î
+このマクロを使用するにはコンパイラの対応が必要であり、
+バージョン 4.0 以降の
 .BR gcc (1)
-¤ÇÍøÍѤǤ­¤ë¡£
+で利用できる。
 .\"O .SS Default definitions, implicit definitions, and combining definitions
-.SS ¥Ç¥Õ¥©¥ë¥È¤ÎÄêµÁ¡¢°ÅÌÛ¤ÎÄêµÁ¡¢ÁȤ߹ç¤ï¤»ÄêµÁ
+.SS デフォルトの定義、暗黙の定義、組み合わせ定義
 .PP
 .\"O If no feature test macros are explicitly defined,
 .\"O then the following feature test macros are defined by default:
@@ -580,16 +580,16 @@ BSD ͳ
 .\"O (200112L in glibc versions before 2.10;
 .\"O 199506L in glibc versions before 2.4;
 .\"O 199309L in glibc versions before 2.1).
-µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬°ì¤Ä¤âÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢
-¥Ç¥Õ¥©¥ë¥È¤Çµ¡Ç½¸¡ºº¥Þ¥¯¥í
+機能検査マクロが一つも明示的に定義されなかった場合、
+デフォルトで機能検査マクロ
 .BR _BSD_SOURCE ,
 .BR _SVID_SOURCE ,
 .BR _POSIX_SOURCE ,
 .BR _POSIX_C_SOURCE =200809L
-¤¬ÄêµÁ¤µ¤ì¤ë
-(¥Ð¡¼¥¸¥ç¥ó 2.10 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ200112L¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ199506L¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.1 ¤è¤êÁ°¤Î glibc ¤Ç¤ÏÃͤϠ199309L)¡£
+が定義される
+(バージョン 2.10 より前の glibc では値は 200112L、
+バージョン 2.4 より前の glibc では値は 199506L、
+バージョン 2.1 より前の glibc では値は 199309L)。
 .PP
 .\"O If any of
 .\"O .BR __STRICT_ANSI__ ,
@@ -614,11 +614,11 @@ BSD ͳ
 .BR _XOPEN_SOURCE_EXTENDED ,
 .BR _BSD_SOURCE ,
 .B _SVID_SOURCE
-¤Î¤¤¤º¤ì¤«¤¬ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤¿¾ì¹ç¡¢
+のいずれかが明示的に定義された場合、
 .B _BSD_SOURCE
-¤È
+と
 .B _SVID_SOURCE
-¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£
+はデフォルトでは定義されない。
 
 .\"O If
 .\"O .B _POSIX_SOURCE
@@ -631,24 +631,24 @@ BSD ͳ
 .\"O .B _XOPEN_SOURCE
 .\"O is defined with a value of 500 or more, then
 .B _POSIX_SOURCE
-¤È
+と
 .B _POSIX_C_SOURCE
-¤¬ÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤Ê¤¤¾ì¹ç¤Ç¡¢
+が明示的に定義されない場合で、
 .B __STRICT_ANSI__
-¤¬ÄêµÁ¤µ¤ì¤Ê¤¤¡¢¤â¤·¤¯¤Ï
+が定義されない、もしくは
 .B _XOPEN_SOURCE
-¤¬ 500 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¤È¤­¤Ë¤Ï¡¢
+が 500 以上の値で定義されたときには、
 .RS 3
 .IP * 3
 .\"O .B _POSIX_SOURCE
 .\"O is defined with the value 1; and
 .B _POSIX_SOURCE
-¤¬ÃÍ 1 ¤ÇÄêµÁ¤µ¤ì¡¢¤«¤Ä
+が値 1 で定義され、かつ
 .IP *
 .\"O .B _POSIX_C_SOURCE
 .\"O is defined with one of the following values:
 .B _POSIX_C_SOURCE
-¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤ÇÄêµÁ¤µ¤ì¤ë¡£
+は以下の値のいずれか一つで定義される。
 .RS 6
 .IP \(bu 3
 .\"O 2,
@@ -657,7 +657,7 @@ BSD ͳ
 .\"O is defined with a value less than 500;
 2
 .RB ( _XOPEN_SOURCE
-¤¬ 500 Ì¤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç)
+が 500 未満の値で定義された場合)
 .IP \(bu
 .\"O 199506L,
 .\"O if
@@ -666,36 +666,36 @@ BSD ͳ
 .\"O or
 199506L
 .RB ( _XOPEN_SOURCE
-¤¬ 500 °Ê¾å 600 Ì¤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç)
+が 500 以上 600 未満の値で定義された場合)
 .IP \(bu
 .\"O (since glibc 2.4) 200112L,
 .\"O if
 .\"O .B XOPEN_SOURCE
 .\"O is defined with a value greater than or equal to 600 and less than 700.
-(glibc 2.4 °Ê¹ß)
+(glibc 2.4 以降)
 200112L
 .RB ( XOPEN_SOURCE
-¤¬ 600 °Ê¾å 700 Ì¤Ëþ¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç)
+が 600 以上 700 未満の値で定義された場合)
 .IP \(bu
 .\"O (Since glibc 2.10)
 .\"O 200809L,
 .\"O if
 .\"O .B XOPEN_SOURCE
 .\"O is defined with a value greater than or equal to 700.
-(glibc 2.10 °Ê¹ß)
+(glibc 2.10 以降)
 200809L
 .RB ( XOPEN_SOURCE
-¤¬ 700 °Ê¾å¤ÎÃͤÇÄêµÁ¤µ¤ì¤¿¾ì¹ç)
+が 700 以上の値で定義された場合)
 .IP \(bu
 .\"O Older versions of glibc do not know about the values
 .\"O 200112L and 200809L for
 .\"O .BR _POSIX_C_SOURCE ,
 .\"O and the setting of this macro will depend on the glibc version.
-¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï
+古いバージョンの glibc では
 .B _POSIX_C_SOURCE
-¤ÎÃͤȤ·¤Æ 200112L ¤ä 200809L ¤Ï¸ºß¤»¤º¡¢
+の値として 200112L や 200809L は存在せず、
 .B _POSIX_C_SOURCE
-¤ÎÃͤ¬¤É¤¦¤Ê¤ë¤«¤Ï glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£
+の値がどうなるかは glibc のバージョンにより異なる。
 .IP \(bu
 .\"O If
 .\"O .B _XOPEN_SOURCE
@@ -706,20 +706,20 @@ BSD ͳ
 .\"O 200112L, in glibc 2.4 to 2.9; and
 .\"O 200809L, since glibc 2.10.
 .B _XOPEN_SOURCE
-¤¬Ì¤ÄêµÁ¤Î¾ì¹ç¡¢
+が未定義の場合、
 .B _POSIX_C_SOURCE
-¤ÎÃͤϠglibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤ê°Û¤Ê¤ë¡£
-¥Ð¡¼¥¸¥ç¥ó 2.4 ¤è¤êÁ°¤Î glibc ¤Ç¤Ï 199506L¡¢
-¥Ð¡¼¥¸¥ç¥ó 2.4 °Ê¹ß 2.9 Ì¤Ëþ¤Ç¤Ï 200112L¡¢
-glibc 2.10 °Ê¹ß¤Ç¤Ï 200809L ¤È¤Ê¤ë¡£
+の値は glibc のバージョンにより異なる。
+バージョン 2.4 より前の glibc では 199506L、
+バージョン 2.4 以降 2.9 未満では 200112L、
+glibc 2.10 以降では 200809L となる。
 .RE
 .RE
 .PP
 .\"O Multiple macros can be defined; the results are additive.
-¤Þ¤¿¡¢Ê£¿ô¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-¤³¤Î¾ì¹ç¡¢ÄêµÁ¤·¤¿¥Þ¥¯¥í¤Ï¤¹¤Ù¤ÆÍ­¸ú¤Ë¤Ê¤ë¡£
+また、複数のマクロを定義することもできる。
+この場合、定義したマクロはすべて有効になる。
 .\"O .SH CONFORMING TO
-.SH ½àµò
+.SH 準拠
 .\"O POSIX.1 specifies
 .\"O .BR _POSIX_C_SOURCE ,
 .\"O .BR _POSIX_SOURCE ,
@@ -727,20 +727,20 @@ glibc 2.10 
 .\"O .BR _XOPEN_SOURCE .
 .\"O .B _XOPEN_SOURCE_EXTENDED
 .\"O was specified by XPG4v2 (aka SUSv1).
-POSIX.1 ¤Ç¤Ï
+POSIX.1 では
 .BR _POSIX_C_SOURCE ,
 .BR _POSIX_SOURCE ,
 .B _XOPEN_SOURCE
-¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
+が規定されている。
 .B _XOPEN_SOURCE_EXTENDED
-¤Ï XPG4v2 (ÊÌ̾ SUSv1) ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤¿¡£
+は XPG4v2 (別名 SUSv1) で規定されていた。
 
 .\"O .B _FILE_OFFSET_BITS
 .\"O is not specified by any standard,
 .\"O but is employed on some other implementations.
 .B _FILE_OFFSET_BITS
-¤Ï¤É¤Îɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢
-¾¤Î¤¤¤¯¤Ä¤«¤Î¼ÂÁõ¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë¡£
+はどの標準でも規定されていないが、
+他のいくつかの実装で採用されている。
 
 .\"O .BR _BSD_SOURCE ,
 .\"O .BR _SVID_SOURCE ,
@@ -758,9 +758,9 @@ POSIX.1 
 .BR _FORTIFY_SOURCE ,
 .BR _REENTRANT ,
 .B _THREAD_SAFE
-¤Ï Linux (glibc) ¸ÇÍ­¤Ç¤¢¤ë¡£
+は Linux (glibc) 固有である。
 .\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
 .\"O .I <features.h>
 .\"O is a Linux/glibc-specific header file.
 .\"O Other systems have an analogous file, but typically with a different name.
@@ -768,11 +768,11 @@ POSIX.1 
 .\"O required: it is not necessary to explicitly include it in order to
 .\"O employ feature test macros.
 .I <features.h>
-¤Ï Linux/glibc ¸ÇÍ­¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£
-¾¤Î¥·¥¹¥Æ¥à¤Ë¤âƱÍͤÎÌÜŪ¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤¬¡¢ÉáÄ̤ϰ㤦̾Á°¤Ç¤¢¤ë¡£
-¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¡¢Â¾¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤è¤êɬÍפ˱þ¤¸¤Æ
-¼«Æ°Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¡£µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤ë¤¿¤á¤Ë
-ÌÀ¼¨Åª¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפϤʤ¤¡£
+は Linux/glibc 固有のヘッダファイルである。
+他のシステムにも同様の目的のファイルがあるが、普通は違う名前である。
+このヘッダファイルは、他のヘッダファイルにより必要に応じて
+自動的にインクルードされる。機能検査マクロを利用するために
+明示的にインクルードする必要はない。
 
 .\"O According to which of the above feature test macros are defined,
 .\"O .I <features.h>
@@ -783,26 +783,26 @@ POSIX.1 
 .\"O Programs should \fInever\fP define these macros directly:
 .\"O instead, the appropriate feature test macro(s) from the
 .\"O list above should be employed.
-¾åµ­¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤Î¤¦¤Á¤É¤ì¤¬ÄêµÁ¤µ¤ì¤¿¤«¤Ë¤·¤¿¤¬¤Ã¤Æ¡¢
+上記の機能検査マクロのうちどれが定義されたかにしたがって、
 .I <features.h>
-¤Ï¡¢Â¾¤Î glibc ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¥Á¥§¥Ã¥¯¤µ¤ì¤ë³Æ¼ï¤Î¾¤Î¥Þ¥¯¥í¤ò¡¢
-ÆâÉô¤ÇÄêµÁ¤¹¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î̾Á°¤Ï¥¢¥ó¥À¡¼¥¹¥³¥¢ 2¤Ä¤Ç»Ï¤Þ¤ë
-(Î㤨¤Ð
-.BR __USE_MISC )¡£
-¥æ¡¼¥¶¥×¥í¥°¥é¥à¤Ï¤³¤ì¤é¤Î¥Þ¥¯¥í¤ò \fI·è¤·¤Æ\fP Ä¾ÀÜÄêµÁ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
-Âå¤ï¤ê¤Ë¡¢¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ëŬÀڤʵ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÍøÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£
+は、他の glibc ヘッダファイルでチェックされる各種の他のマクロを、
+内部で定義する。これらのマクロの名前はアンダースコア 2つで始まる
+(例えば
+.BR __USE_MISC )
+ユーザプログラムはこれらのマクロを \fI決して\fP 直接定義すべきではない。
+代わりに、上記のリストにある適切な機能検査マクロを利用すべきである。
 .\"O .SH EXAMPLE
-.SH Îã
+.SH 
 .\"O The program below can be used to explore how the various
 .\"O feature test macros are set depending on the glibc version
 .\"O and what feature test macros are explicitly set.
 .\"O The following shell session, on a system with glibc 2.10,
 .\"O shows some examples of what we would see:
-²¼µ­¤Î¥×¥í¥°¥é¥à¤ò»È¤¦¤È¡¢³Æ¼ï¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ glibc ¤Î¥Ð¡¼¥¸¥ç¥ó
-¤Ë±þ¤¸¤Æ¤É¤Î¤è¤¦¤ËÀßÄꤵ¤ì¤ë¤«¤ä¡¢¤É¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÌÀ¼¨Åª¤Ë
-ÀßÄꤵ¤ì¤ë¤«¡¢¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-°Ê²¼¤Ë¼¨¤¹¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¡¢
-glibc 2.10 ¤Î¥·¥¹¥Æ¥à¤Ç¤Î¼Â¹Ô·ë²Ì¤ÎÎã¤Ç¤¢¤ë¡£
+下記のプログラムを使うと、各種の機能検査マクロが glibc のバージョン
+に応じてどのように設定されるかや、どの機能検査マクロが明示的に
+設定されるか、を調べることができる。
+以下に示すシェル・セッションは、
+glibc 2.10 のシステムでの実行結果の例である。
 .in +4n
 .nf
 
@@ -904,14 +904,14 @@ main(int argc, char *argv[])
 }
 .fi
 .\"O .SH SEE ALSO
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR libc (7),
 .BR standards (7)
 .sp
 .\"O The section "Feature Test Macros" under
 .\"O .IR "info libc" .
 .I "info libc"
-¤Î "Feature Test Macros" ¤ÎÀá¡£
+の "Feature Test Macros" の節。
 .\" But beware: the info libc document is out of date (Jul 07, mtk)
 .sp
 .I /usr/include/features.h