OSDN Git Service

(split) LDP: Complete the following pages in intro
[linuxjm/LDP_man-pages.git] / release / man7 / feature_test_macros.7
index de1c1e9..e6d4e1a 100644 (file)
@@ -1,7 +1,6 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" This manpage is Copyright (C) 2006, Michael Kerrisk
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\"*******************************************************************
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH FEATURE_TEST_MACROS 7 2012\-01\-18 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 2006 Akihiro MOTOKI all rights reserved.
+.\" Translated 2006-07-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46
+.\" Updated 2007-09-08, Akihiro MOTOKI, LDP v2.64
+.\" Updated 2009-04-23, Akihiro MOTOKI, LDP v3.21
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH FEATURE_TEST_MACROS 7 2014\-03\-20 Linux "Linux Programmer's Manual"
 .SH 名前
 feature_test_macros \- 機能検査マクロ
 .SH 書式
@@ -71,7 +79,7 @@ glibc 向けの機能検査マクロの要件
 .nf
 
 #define _BSD_SOURCE
-#define _XOPEN_SOURCE        /* or any value < 500 */
+#define _XOPEN_SOURCE        /* 500 未満の任意の値 */
 .fi
 .RE
 .PP
@@ -80,7 +88,7 @@ glibc 向けの機能検査マクロの要件
 .nf
 
 cc \-D_BSD_SOURCE
-cc \-D_XOPEN_SOURCE           # Or any value < 500
+cc \-D_XOPEN_SOURCE           # 500 未満の任意の値
 .fi
 .RE
 .PP
@@ -120,16 +128,16 @@ ISO 標準の C。 \fBgcc\fP(1)  を \fI\-std=c99\fP や \fI\-ansi\fP などの
 .IP \(bu
 値が 2 以上の場合、 POSIX.2\-1992 関連の定義も追加で公開される。
 .IP \(bu
-.\" 199506L functionality is only available since glibc 2.1
+.\" 199506L functionality is available only since glibc 2.1
 値が 199309 以上の場合、 POSIX.1b (リアルタイム拡張) 関連の定義が追加で公開される。
 .IP \(bu
 値が 199506 以上の場合、 POSIX.1c (スレッド) 関連の定義が追加で公開される。
 .IP \(bu
 (glibc 2.3.3 以降)  値が 200112L 以上の場合、 (XSI 拡張を除く) POSIX.1\-2001
\9fºæ\9c¬ä»\95æ§\98ã\81«å¯¾å¿\9cã\81\99ã\82\8bå®\9a義ã\81\8c公開される。
\9fºæ\9c¬ä»\95æ§\98ã\81«å¯¾å¿\9cã\81\99ã\82\8bå®\9a義ã\82\82追å\8a ã\81§å\85¬é\96\8bã\81\95ã\82\8cã\80\81ã\81¾ã\81\9f C95 (glibc 2.12 ä»¥é\99\8d) ã\81¨ C99 (glibc 2.10 ä»¥é\99\8d) ã\81®æ©\9fè\83½ã\82\82公開される。
 .IP \(bu
 (glibc 2.10 以降)  値が 200809L 以上の場合、 (XSI 拡張を除く) POSIX.1\-2008
-基本仕様に対応する定義が公開される。
+基本仕様に対応する定義が追加で公開される。
 .RE
 .TP 
 \fB_POSIX_SOURCE\fP
@@ -149,51 +157,108 @@ ISO 標準の C。 \fBgcc\fP(1)  を \fI\-std=c99\fP や \fI\-ansi\fP などの
 (glibc 2.10 以降)  値が 700 以上の場合、 SUSv4 (POSIX.1\-2008 基本仕様 + XSI 拡張と同じ)
 関連の定義が追加で公開される。
 .RE
+.IP
+\fB__STRICT_ANSI__\fP が定義されていない場合、または \fB_XOPEN_SOURCE\fP が 500 以上の値で定義されていて、
+\fB_POSIX_SOURCE\fP も \fB_POSIX_C_SOURCE\fP も明示的に定義されていない場合、以下のマクロが暗黙のうちに定義される。
+.RS
+.IP \(bu 3
+\fB_POSIX_SOURCE\fP が値 1 で定義される。
+.IP \(bu
+\fB_POSIX_C_SOURCE\fP は、\fB_XOPEN_SOURCE\fP の値に基づいて定義される。
+.RS 7
+.TP 
+\fB_XOPEN_SOURCE\fP < 500
+\fB_POSIX_C_SOURCE\fP が値 2 で定義される。
+.TP 
+500 <= \fB_XOPEN_SOURCE\fP < 600
+\fB_POSIX_C_SOURCE\fP が値 199506L で定義される。
+.TP 
+600 <= \fB_XOPEN_SOURCE\fP < 700
+\fB_POSIX_C_SOURCE\fP が値 200112L で定義される。
+.TP 
+700 <= \fB_XOPEN_SOURCE\fP (glibc 2.10 以降)
+\fB_POSIX_C_SOURCE\fP が値 200809L で定義される。
+.RE
+.RE
 .TP 
 \fB_XOPEN_SOURCE_EXTENDED\fP
 このマクロが定義され、さらに \fB_XOPEN_SOURCE\fP が定義されていると、XPG4v2 (SUSv1) UNIX 拡張 (UNIX 95)
 に対応する定義が公開される。 \fB_XOPEN_SOURCE\fP が 500 以上の値で定義された場合、このマクロは暗黙のうちに定義される。
 .TP 
-\fB_ISOC95_SOURCE\fP
-ISO C (1990) Amendment 1 の定義 (C95 としても知られる) が公開される。
-C95 における主要な変更点は国際化文字集合のサポートであった。
-C95 の変更点は、これに続く C99 標準にも含まれた
-(言い換えると、\fB_ISOC99_SOURCE\fP を定義すると暗黙のうちに \fB_ISOC95_SOURCE\fP
-を定義されることを意味する)。
-.TP 
-\fB_ISOC99_SOURCE\fP
-ISO C (1990) の C99 拡張を公開する。 このマクロは glibc 2.1.3 以降で認識される。 初期のバージョン 2.1.x の
-glibc では、これと等価な \fB_ISOC9X_SOURCE\fP という名前のマクロが使われていた (なぜなら、C99
-標準はまだ確定していなかったからである)。 \fB_ISOC9X_SOURCE\fP マクロの使用は廃止されているが、 glibc
+\fB_ISOC99_SOURCE\fP (glibc 2.1.3 以降)
+ISO C99 標準に準拠した宣言を公開する。
+
+初期のバージョン 2.1.x の glibc では、これと等価な \fB_ISOC9X_SOURCE\fP という名前のマクロが使われていた
+(なぜなら、C99 標準はまだ確定していなかったからである)。 \fB_ISOC9X_SOURCE\fP マクロの使用は廃止されているが、 glibc
 は過去との互換性のため今でもこのマクロを認識する。
+
+\fB_ISOC99_SOURCE\fP を定義すると、 ISO C (1990) Amendment 1 ("C95") の定義も公開される (C95
+での主要な変更点は国際化文字集合のサポートであった)。
 .TP 
-\fB_ISOC11_SOURCE\fP
-ISO C11 標準に準拠した宣言を公開する。
\81\93ã\81®ã\83\9eã\82¯ã\83­ã\81¯ glibc 2.16 ä»¥é\99\8dã\81§èª\8dè­\98ã\81\95ã\82\8cる。
+\fB_ISOC11_SOURCE\fP (glibc 2.16 以降)
+ISO C11 標準に準拠した宣言を公開する。 このマクロを定義すると (\fB_ISOC99_SOURCE\fP 同様) C99 と C95
\81®æ©\9fè\83½ã\82\82æ\9c\89å\8a¹ã\81«ã\81ªる。
 .TP 
 \fB_LARGEFILE64_SOURCE\fP
 LFS (Large File Summit) により "暫定拡張 (transitional extension)" Single UNIX
-Specification として規定された代替 API (alternative API) に関する定義を公開する
-(http://opengroup.org/platform/lfs.html 参照)。 代替 API は新規オブジェクト (関数と型)
-の集合で構成され、 その名前は "64" で終わる (例えば、 \fIoff_t\fP に対応するのは \fIoff64_t\fP、 \fBlseek\fP()
-に対応するのは \fBlseek64\fP()  である)。 新しいプログラムではこのインタフェースを利用しないこと。 代わりに
+Specification として規定された代替 API (alternative API) に関する定義を公開する (
+.UR http:\:/\:/opengroup.org\:/platform\:/lfs.html
+.UE
+参照)。 代替 API は新規オブジェクト
+(関数と型) の集合で構成され、 その名前は "64" で終わる (例えば、 \fIoff_t\fP に対応するのは \fIoff64_t\fP、
+\fBlseek\fP()  に対応するのは \fBlseek64\fP()  である)。 新しいプログラムではこのマクロを利用しないこと。 代わりに
 \fI_FILE_OFFSET_BITS=64\fP を利用すること。
 .TP 
+\fB_LARGEFILE_SOURCE\fP
+このマクロは、歴史的には、ファイルオフセットで \fIlong int\fP を使う以前の API (\fBfseek\fP(3) や \fBftell\fP(3))
+の制限を解決する関数 (特に \fBfseeko\fP(3) と \fBftello\fP(3)) を公開するのに使われていた。 このマクロは
+\fB_XOPEN_SOURCE\fP が 500 以上の値で定義されている場合に暗黙のうちに定義される。
+新しいプログラムでぇあこのマクロは使用すべきではない。 \fB_XOPEN_SOURCE\fP をただ定義するか、 \fB_FILE_OFFSET_BITS\fP
+を値 64 で定義するのが、同じ結果を得るための推奨される方法である。
+.TP 
 \fB_FILE_OFFSET_BITS\fP
 このマクロを値 64 で定義すると、ファイル I/O とファイルシステム操作に 関連する 32 ビット版の関数とデータタイプは自動的に 64 ビット版に
 変換される。 これは、32 ビットシステムで大きなファイル (> 2 ギガバイト) の I/O を実行する際に役立つ
-(このマクロを定義すると、コンパイルし直すだけで大きなファイルを 扱えるプログラムを書くことができる)。 64 ビットシステムは、もともと 2
-ギガバイトより大きなファイルを 扱えるので、64 ビットシステムではこのマクロは効果を持たない。
+(このマクロを定義すると、コンパイルし直すだけで大きなファイルを 扱えるプログラムを書くことができる)。
+
+64 ビットシステムは、もともと 2 ギガバイトより大きなファイルを 扱えるので、64 ビットシステムではこのマクロは効果を持たない。
 .TP 
-\fB_BSD_SOURCE\fP
-このマクロを定義すると (値に関わらず) ヘッダファイルで BSD 由来の定義が公開される。
-また、このマクロを定義すると、相容れない標準が存在する状況において BSD 由来の定義を優先するようになる。 ただし、 \fB_SVID_SOURCE\fP,
-\fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP, \fB_XOPEN_SOURCE\fP,
-\fB_XOPEN_SOURCE_EXTENDED\fP, \fB_GNU_SOURCE\fP が一つでも定義された場合には、BSD 由来の定義は優先されなくなる。
+\fB_BSD_SOURCE\fP (glibc 2.20 以降では非推奨)
+このマクロを定義すると、値に関わらず、ヘッダファイルで BSD 由来の定義が公開される。
+
+バージョン 2.18 以前の glibc では、このマクロを定義すると、相容れない標準が存在する状況において BSD 由来の定義を優先するようになる。
+ただし、 \fB_SVID_SOURCE\fP, \fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP,
+\fB_XOPEN_SOURCE\fP, \fB_XOPEN_SOURCE_EXTENDED\fP, \fB_GNU_SOURCE\fP
+が一つでも定義された場合には、BSD 由来の定義は優先されなくなる。 glibc 2.19 以降では、 \fB_BSD_SOURCE\fP
+を定義しても相容れない標準があっても BSD 由来の定義が優先されることはもはやなくなった。
+
+.\" commit c941736c92fa3a319221f65f6755659b2a5e0a20
+.\" commit 498afc54dfee41d33ba519f496e96480badace8e
+.\" commit acd7f096d79c181866d56d4aaf3b043e741f1e2c
+.\" commit ade40b10ff5fa59a318cf55b9d8414b758e8df78
+glibc 2.20 以降では、このマクロは非推奨である。 このマクロは現在は \fB_DEFAULT_SOURCE\fP を定義するのと同じ効果を持つが、
+(\fB_DEFAULT_SOURCE\fP が合わせて定義されていない場合には) コンパイル時の警告が出る。 代わりに \fB_DEFAULT_SOURCE\fP
+を使用すること。 glibc 2.19 以前で \fB_BSD_SOURCE\fP が必要で glibc 2.20 以降で
+\fB_DEFAULT_SOURCE\fP を必要とするプログラムを警告を出さずにコンパイルするには、 \fB_BSD_SOURCE\fP と
+\fB_DEFAULT_SOURCE\fP の\fI両方\fPを定義すること。
 .TP 
-\fB_SVID_SOURCE\fP
+\fB_SVID_SOURCE\fP (glibc 2.20 以降では非推奨)
 このマクロを定義すると (値に関わらず) ヘッダファイルで System V 由来の定義が公開される (SVID == System V
 Interface Definition; \fBstandards\fP(7)  参照)。
+
+glibc 2.20 以降、 \fB_BSD_SOURCE\fP と同様にこのマクロは非推奨となっている。
+.TP 
+\fB_DEFAULT_SOURCE\fP (glibc 2.19 以降)
+このマクロを使うと、「デフォルト」が無効になるような場合でも「デフォルト」の定義が提供されるようにすることができる。「デフォルト」が無効になるような状況は、個別のマクロが明示的に定義された場合や、コンパイラが「標準」モードのいずれか
+(例えば \fIcc\ \-std=c99\fP)
+で起動された場合などである。他の個々のマクロが定義されず、コンパイラも「標準」モードのいずれかを指定して起動されていない場合は、
+\fB_DEFAULT_SOURCE\fP を定義しても何の効果もない。
+
+「デフォルト」定義は、 POSIX.1\-2008 で必須となっている定義と、 BSD と System V 由来の種々の定義を公開する。 glibc
+2.19 以前では、これらのデフォルトは以下を明示的に定義するのとほぼ等価である。
+
+    cc \-D_BSD_SOURCE \-D_SVID_SOURCE \-D_POSIX_C_SOURCE=200809
+
 .TP 
 \fB_ATFILE_SOURCE\fP (glibc 2.4 以降)
 このマクロを定義すると (値に関わらず) ヘッダファイルで 名前の末尾が "at" の各種の関数の定義が公開される。 \fBopenat\fP(2)  参照。
@@ -201,13 +266,16 @@ glibc 2.10 以降では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定
 このマクロも暗黙のうちに定義される。
 .TP 
 \fB_GNU_SOURCE\fP
-このマクロを定義すると (値に関わらず) 以下のマクロを定義するのと 等価になる: \fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP,
-\fB_ATFILE_SOURCE\fP, \fB_LARGEFILE64_SOURCE\fP, \fB_ISOC99_SOURCE\fP,
-\fB_XOPEN_SOURCE_EXTENDED\fP, \fB_POSIX_SOURCE\fP, 値 200809L の \fB_POSIX_C_SOURCE\fP
-(バージョン 2.10 より前の glibc では値は 200112L、 バージョン 2.5 より前の glibc では値は 199506L、
-バージョン 2.1 より前の glibc では値は 199309L), 値 700 の \fB_XOPEN_SOURCE\fP (バージョン 2.10
-より前の glibc では値は 600、 バージョン 2.2 より前の glibc では値は 500)。 さらに、各種の GNU
-固有の拡張も公開される。 指定された標準に矛盾があった場合は、 BSD 由来の定義が優先されなくなる。
+このマクロを定義すると (値に関わらず) 以下のマクロが暗黙のうちに定義される: \fB_ATFILE_SOURCE\fP,
+\fB_LARGEFILE64_SOURCE\fP, \fB_ISOC99_SOURCE\fP, \fB_XOPEN_SOURCE_EXTENDED\fP,
+\fB_POSIX_SOURCE\fP, 値 200809L の \fB_POSIX_C_SOURCE\fP (バージョン 2.10 より前の glibc では値は
+200112L、 バージョン 2.5 より前の glibc では値は 199506L、 バージョン 2.1 より前の glibc では値は
+199309L), 値 700 の \fB_XOPEN_SOURCE\fP (バージョン 2.10 より前の glibc では値は 600、 バージョン
+2.2 より前の glibc では値は 500)。
+
+glibc 2.19 以降では、 \fB_GNU_SOURCE\fP を定義すると、 \fB_DEFAULT_SOURCE\fP も暗黙のうちに定義される。
+バージョン 2.20 より前の glibc では、 \fB_GNU_SOURCE\fP を定義すると、 \fB_BSD_SOURCE\fP と
+\fB_SVID_SOURCE\fP も暗黙のうちに定義されていた。
 .TP 
 \fB_REENTRANT\fP
 このマクロを定義すると、いくつかのリエントラント (再入可能) な関数 定義が公開される。マルチスレッド・プログラムでは、この代わりに \fIcc\ \-pthread\fP を使用すること。
@@ -222,44 +290,48 @@ glibc 2.10 以降では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定
 .\" * From: Jakub Jelinek <jakub at redhat dot com>
 .\" * To: gcc-patches at gcc dot gnu dot org
 .\" * Date: Tue, 21 Sep 2004 04:16:40 -0400
-このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが
-実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。
-現在の実装では、以下の関数にチェックが追加されている: \fBmemcpy\fP(3), \fBmempcpy\fP(3), \fBmemmove\fP(3),
-\fBmemset\fP(3), \fBstpcpy\fP(3), \fBstrcpy\fP(3), \fBstrncpy\fP(3), \fBstrcat\fP(3),
-\fBstrncat\fP(3), \fBsprintf\fP(3), \fBsnprintf\fP(3), \fBvsprintf\fP(3),
-\fBvsnprintf\fP(3), \fBgets\fP(3).  \fB_FORTIFY_SOURCE\fP が 1 に設定された場合、コンパイラの最適化レベルが
-1 (\fIgcc\ \-O1\fP)  かそれ以上であれば、規格に準拠するプログラムの振る舞いを 変化させないようなチェックが実行される。
-\fB_FORTIFY_SOURCE\fP が 2 に設定された場合、さらなるチェックが追加されるが、
-規格に準拠するプログラムのいくつかが失敗する可能性がある。 いくつかのチェックはコンパイル時に実行でき、コンパイラの警告として
-表示される。他のチェックは実行時に行われ、チェックに失敗した場合 には実行時エラーとなる。 このマクロを使用するにはコンパイラの対応が必要であり、
-バージョン 4.0 以降の \fBgcc\fP(1)  で利用できる。
+このマクロを定義すると、文字列やメモリの操作を行う様々な関数を使用する際にバッファオーバーフローを検出するための軽めのチェックが実行されるようになる。すべてのバッファオーバーフローが検出されるわけではなく、あくまでよくある例についてだけである。
+
+ついてだけである。 現在の実装では、以下の関数にチェックが追加されている: \fBmemcpy\fP(3), \fBmempcpy\fP(3),
+\fBmemmove\fP(3), \fBmemset\fP(3), \fBstpcpy\fP(3), \fBstrcpy\fP(3), \fBstrncpy\fP(3),
+\fBstrcat\fP(3), \fBstrncat\fP(3), \fBsprintf\fP(3), \fBsnprintf\fP(3), \fBvsprintf\fP(3),
+\fBvsnprintf\fP(3), \fBgets\fP(3)
+
+\fB_FORTIFY_SOURCE\fP が 1 に設定された場合、コンパイラの最適化レベルが 1 (\fIgcc\ \-O1\fP)
+かそれ以上であれば、規格に準拠するプログラムの振る舞いを 変化させないようなチェックが実行される。 \fB_FORTIFY_SOURCE\fP が 2
+に設定された場合、さらなるチェックが追加されるが、 規格に準拠するプログラムのいくつかが失敗する可能性がある。
+いくつかのチェックはコンパイル時に実行でき、コンパイラの警告として 表示される。他のチェックは実行時に行われ、チェックに失敗した場合
+には実行時エラーとなる。
+
+このマクロを使用するにはコンパイラの対応が必要であり、 バージョン 4.0 以降の \fBgcc\fP(1)  で利用できる。
 .SS デフォルトの定義、暗黙の定義、組み合わせ定義
 .PP
-機能検査マクロが一つも明示的に定義されなかった場合、 デフォルトで機能検査マクロ \fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP,
+機能検査マクロが一つも明示的に定義されなかった場合、 デフォルトで機能検査マクロ \fB_BSD_SOURCE\fP (glibc 2.19 以前),
+\fB_SVID_SOURCE\fP (glibc 2.19 以前), \fB_DEFAULT_SOURCE\fP (glibc 2.19 以降),
 \fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP=200809L が定義される (バージョン 2.10 より前の glibc
 では値は 200112L、 バージョン 2.4 より前の glibc では値は 199506L、 バージョン 2.1 より前の glibc では値は
 199309L)。
 .PP
 \fB__STRICT_ANSI__\fP, \fB_ISOC99_SOURCE\fP, \fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP,
-\fB_XOPEN_SOURCE\fP, \fB_XOPEN_SOURCE_EXTENDED\fP, \fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP
-のいずれかが明示的に定義された場合、 \fB_BSD_SOURCE\fP と \fB_SVID_SOURCE\fP はデフォルトでは定義されない。
+\fB_XOPEN_SOURCE\fP, \fB_XOPEN_SOURCE_EXTENDED\fP, \fB_BSD_SOURCE\fP (glibc 2.19 以前),
+\fB_SVID_SOURCE\fP (glibc 2.19 以前) のいずれかが明示的に定義された場合、 \fB_BSD_SOURCE\fP,
+\fB_SVID_SOURCE\fP, \fB_SVID_SOURCE\fP はデフォルトでは定義されない。
 
 \fB_POSIX_SOURCE\fP と \fB_POSIX_C_SOURCE\fP が明示的に定義されない場合で、 \fB__STRICT_ANSI__\fP
 が定義されない、もしくは \fB_XOPEN_SOURCE\fP が 500 以上の値で定義されたときには、
-.RS 3
 .IP * 3
 \fB_POSIX_SOURCE\fP が値 1 で定義され、かつ
 .IP *
 \fB_POSIX_C_SOURCE\fP は以下の値のいずれか一つで定義される。
-.RS 6
+.RS 3
 .IP \(bu 3
 2 (\fB_XOPEN_SOURCE\fP が 500 未満の値で定義された場合)
 .IP \(bu
 199506L (\fB_XOPEN_SOURCE\fP が 500 以上 600 未満の値で定義された場合)
 .IP \(bu
-(glibc 2.4 以降)  200112L (\fBXOPEN_SOURCE\fP が 600 以上 700 未満の値で定義された場合)
+(glibc 2.4 以降)  200112L (\fB_XOPEN_SOURCE\fP が 600 以上 700 未満の値で定義された場合)
 .IP \(bu
-(glibc 2.10 以降)  200809L (\fBXOPEN_SOURCE\fP が 700 以上の値で定義された場合)
+(glibc 2.10 以降)  200809L (\fB_XOPEN_SOURCE\fP が 700 以上の値で定義された場合)
 .IP \(bu
 古いバージョンの glibc では \fB_POSIX_C_SOURCE\fP の値として 200112L や 200809L は存在せず、
 \fB_POSIX_C_SOURCE\fP の値がどうなるかは glibc のバージョンにより異なる。
@@ -268,7 +340,6 @@ glibc 2.10 以降では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定
 2.4 より前の glibc では 199506L、 バージョン 2.4 以降 2.9 未満では 200112L、 glibc 2.10 以降では
 200809L となる。
 .RE
-.RE
 .PP
 また、複数のマクロを定義することもできる。 この場合、定義したマクロはすべて有効になる。
 .SH 準拠
@@ -277,8 +348,9 @@ POSIX.1 では \fB_POSIX_C_SOURCE\fP, \fB_POSIX_SOURCE\fP, \fB_XOPEN_SOURCE\fP 
 
 \fB_FILE_OFFSET_BITS\fP はどの標準でも規定されていないが、 他のいくつかの実装で採用されている。
 
-\fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP, \fB_ATFILE_SOURCE\fP, \fB_GNU_SOURCE\fP,
-\fB_FORTIFY_SOURCE\fP, \fB_REENTRANT\fP, \fB_THREAD_SAFE\fP は Linux (glibc) 固有である。
+\fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP, \fB_DEFAULT_SOURCE\fP, \fB_ATFILE_SOURCE\fP,
+\fB_GNU_SOURCE\fP, \fB_FORTIFY_SOURCE\fP, \fB_REENTRANT\fP, \fB_THREAD_SAFE\fP は Linux
+(glibc) 固有である。
 .SH 注意
 \fI<features.h>\fP は Linux/glibc 固有のヘッダファイルである。
 他のシステムにも同様の目的のファイルがあるが、普通は違う名前である。 このヘッダファイルは、他のヘッダファイルにより必要に応じて
@@ -320,7 +392,7 @@ _ATFILE_SOURCE defined
 _GNU_SOURCE defined
 .fi
 .in
-.SS "Program source"
+.SS プログラムのソース
 \&
 .nf
 /* ftm.c */
@@ -344,6 +416,10 @@ main(int argc, char *argv[])
     printf("_ISOC99_SOURCE defined\en");
 #endif
 
+#ifdef _ISOC11_SOURCE
+    printf("_ISOC11_SOURCE defined\en");
+#endif
+
 #ifdef _XOPEN_SOURCE
     printf("_XOPEN_SOURCE defined: %d\en", _XOPEN_SOURCE);
 #endif
@@ -368,6 +444,10 @@ main(int argc, char *argv[])
     printf("_SVID_SOURCE defined\en");
 #endif
 
+#ifdef _DEFAULT_SOURCE
+    printf("_DEFAULT_SOURCE defined\en");
+#endif
+
 #ifdef _ATFILE_SOURCE
     printf("_ATFILE_SOURCE defined\en");
 #endif
@@ -393,12 +473,12 @@ main(int argc, char *argv[])
 .fi
 .SH 関連項目
 \fBlibc\fP(7), \fBstandards\fP(7)
-.sp
+
 .\" But beware: the info libc document is out of date (Jul 07, mtk)
 \fIinfo libc\fP の "Feature Test Macros" の節。
-.sp
+
 \fI/usr/include/features.h\fP
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。