From: Akihiro Motoki Date: Fri, 26 Mar 2021 08:00:16 +0000 (+0900) Subject: LDP: Update draft based on the previous commit X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=02a85b9b4361edf51957768d7827c41b08111f43;p=linuxjm%2Fjm.git LDP: Update draft based on the previous commit --- diff --git a/manual/LDP_man-pages/draft/man1/intro.1 b/manual/LDP_man-pages/draft/man1/intro.1 new file mode 100644 index 00000000..198cf92b --- /dev/null +++ b/manual/LDP_man-pages/draft/man1/intro.1 @@ -0,0 +1,189 @@ +.\" Copyright (c) 2002 Andries Brouwer +.\" +.\" %%%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. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" 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. +.\" +.\"******************************************************************* +.\" +.\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved. +.\" Translated Mon Mar 5 2003 by Akihiro MOTOKI +.\" +.TH INTRO 1 2020\-08\-13 Linux "Linux User's Manual" +.SH 名前 +intro \- ユーザーコマンドの紹介 +.SH 説明 +マニュアルの 1 章は、ユーザーコマンドやツールの説明について説明している。 例えば、ファイル操作ツール、シェル、コンパイラ、ウェブブラウザ、 +ファイルやイメージのビューアやエディタ、などである。 +.SH 注意 +Linux は UNIX の一種であり、大雑把にいえば、 UNIX 上のユーザーコマンドはすべて Linux 上でも全く同じ動作をする (FreeBSD +や他のの多くの UNIX 風のシステムでも同様である)。 +.PP +Linux には GUI (グラフィカルユーザーインターフェース) が用意されており、 +何かをポイントしたり、クリックしたり、ドラッグしたりでき、うまくいけば 最初にたくさんの文書を読まなくても目的の作業ができてしまうこともある。 伝統的な +UNIX 環境は CLI (コマンドラインインターフェース) であり、 コマンドを打ち込んで、コンピュータに何をすべきか教えてやる。 CLI は GUI +よりも速く強力だが、どのコマンドが何をするのか知っている必要 がある。CLI を使い始めるために必要最小限のコマンドを以下に述べる。 +.SS ログイン +作業を開始するためには、ます最初にユーザー名とパスワードを入力してセッションをオープンしなければならないだろう。 \fBlogin\fP(1) プログラムは +(コマンドインタープリターである) \fIシェル (shell)\fP を起動する。グラフィカルログインの場合は、メニューやアイコンがある +スクリーンが表示され、マウスをクリックするとウィンドウが開いて シェルが起動されることだろう。詳しくは \fBxterm\fP(1) を参照のこと。 +.SS シェル +コマンドは、コマンドインタープリターである \fIシェル\fP に対して入力する。 \fIシェル\fP +は、組み込みコマンドではなく普通のプログラムであり、好みのものに変更する ことができる。各人にはそれぞれ好みのシェルがある。標準のシェルは \fIsh\fP +と呼ばれる。 \fBash\fP(1), \fBbash\fP(1), \fBchsh\fP(1), \fBcsh\fP(1), \fBdash\fP(1), \fBksh\fP(1), +\fBzsh\fP(1) も参照のこと。 +.PP +セッションの例を以下に示す。 +.PP +.in +4n +.EX +knuth login: \fBaeb\fP +Password: \fB********\fP +$ \fBdate\fP +Tue Aug 6 23:50:44 CEST 2002 +$ \fBcal\fP + August 2002 +Su Mo Tu We Th Fr Sa + 1 2 3 + 4 5 6 7 8 9 10 +11 12 13 14 15 16 17 +18 19 20 21 22 23 24 +25 26 27 28 29 30 31 + +$ \fBls\fP +bin tel +$ \fBls \-l\fP +total 2 +drwxrwxr\-x 2 aeb 1024 Aug 6 23:51 bin +\-rw\-rw\-r\-\- 1 aeb 37 Aug 6 23:52 tel +$ \fBcat tel\fP +maja 0501\-1136285 +peter 0136\-7399214 +$ \fBcp tel tel2\fP +$ \fBls \-l\fP +total 3 +drwxr\-xr\-x 2 aeb 1024 Aug 6 23:51 bin +\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:52 tel +\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:53 tel2 +$ \fBmv tel tel1\fP +$ \fBls \-l\fP +total 3 +drwxr\-xr\-x 2 aeb 1024 Aug 6 23:51 bin +\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:52 tel1 +\-rw\-r\-\-r\-\- 1 aeb 37 Aug 6 23:53 tel2 +$ \fBdiff tel1 tel2\fP +$ \fBrm tel1\fP +$ \fBgrep maja tel2\fP +maja 0501\-1136285 +$ +.EE +.in +.PP +ここで Control\-D を打つとセッションが終了する。 +.PP +ここで、 \fB$\fP はコマンドプロンプトである。コマンドプロンプトはシェル独特のやり方で、 +シェルが次のコマンドを受け付けられる状態になっていることを示している。 プロンプトは、柔軟にカスタマイズ +することができ、ユーザー名、マシン名、カレントディレクトリ、時刻などを プロンプトに含めることができる。 PS1="What next, master? +" と設定すると、 プロンプトはそのように変更されるだろう。 +.PP +例にあるように、 \fIdate\fP という日付と時刻を表示するコマンドや、 \fIcal\fP というカレンダを表示するコマンドもある。 +.PP +\fIls\fP コマンドはカレントディレクトリの内容をリスト表示する、つまり ディレクトリ内にどんなファイルがあるかを教えてくれる。 \fI\-l\fP +オプションをつけて実行すると、詳細表示が行われ、 ファイルの所有者、サイズ、日付などが表示される。 上の例では、"tel" ファイルは、サイズが 37 +バイトで、所有者は aeb で、 所有者は読み書きができ、他の人は読み出しだけができることが分かる。 ファイルの所有者と権限 (permission) +は、それぞれ \fIchown\fP コマンドと \fIchmod\fP コマンドで変更できる。 +.PP +\fIcat\fP コマンドはファイルの内容を表示する。 (コマンド名は "concatenate and print" (連結して印字する) +に由来している。 引数として与えられた全てのファイルの内容が連結され、「標準出力」 (\fBstdout\fP(3) 参照) +に送られる。上の例では、標準出力は端末のスクリーンである。) +.PP +\fIcp\fP コマンドはファイルのコピーを行う (その名前は "copy" に由来する)。 +.PP +一方、 \fImv\fP コマンドは単純にファイル名の変更を行う (その名前は "move" に由来する)。 +.PP +\fIdiff\fP コマンドは 2 つのファイルの違いを表示する。 上の例では、二つのファイルに違いがないので、何も出力されていない。 +.PP +\fIrm\fP コマンドはファイルを削除する。ファイルはなくなってしまうので 注意して使用すること! ゴミ箱に相当するものはなく、 +削除はそのファイルが完全に失われることを意味する。 +.PP +\fIgrep\fP コマンドは、指定された文字列を一つ以上のファイルから探す (コマンド名は "g/re/p" に由来している)。 上の例では、Maja +の電話番号が見つかっている。 +.SS パス名とカレントディレクトリ +ファイルはファイル階層という大きな木の中にある。それぞれのファイルには \fIパス名 (pathname)\fP があり、パス名は (\fI/\fP と呼ばれる) +木の根からの経路を示すものである。 上の例では、完全なパス名は \fI/home/aeb/tel\fP のようになる。 +いつも完全なパス名を使うのは不便なので、カレントディレクトリにある ファイル名は、ファイル名の最後の部分だけに省略することができる。 +したがって、カレントディレクトリが \fI/home/aeb\fP の時は、 \fI/home/aeb/tel\fP を \fItel\fP に省略して書くことができる。 +.PP +\fIpwd\fP コマンドはカレントディレクトリを表示する。 +.PP +\fIcd\fP コマンドはカレントディレクトリを変更する。 +.PP +コマンド \fIcd\fP と \fIpwd\fP を交互に実行して、 \fIcd\fP の使い方をいろいろ試してみましょう: "cd", "cd .", "cd +\&..", "cd /" and "cd \(ti". +.SS ディレクトリ +\fImkdir\fP コマンドはディレクトリを新規に作成する。 +.PP +\fIrmdir\fP コマンドは空であればディレクトリを削除し、 空でなければエラーメッセージを表示する。 +.PP +\fIfind\fP コマンドは、指定された名前やその他の属性を持つファイルを探す (書式はかなり変わっている)。例えば、"find . \-name tel" +を実行すると、 \fItel\fP という名前のファイルの検索をカレントディレクトリから開始する。 (カレントディレクトリは \fI.\fP で表す)。"find +/ \-name tel" としても 同じことを行うが、検索は木の根 (\fI/\fP) から開始される。 数 GB +のディスクに対して検索をかけると時間がかかるので、 そのようなときは \fBlocate\fP(1) を使った方がいいかもしれない。 +.SS ディスクとファイルシステム +\fImount\fP コマンドは、(フロッピーや CDROM などの) ディスク上のファイルシステムを 大きなファイルシステム階層に接続する。逆に +\fIumount\fP コマンドは切り離しを行う。 \fIdf\fP コマンドを実行すると、ディスクの未使用量がどの程度かを表示する。 +.SS プロセス +UNIX システムでは、多くのユーザープロセスとシステムプロセスが同時に実行される。 対話的に実行できるプロセスは \fIforeground\fP +で実行されており、そうでないものは \fIbackground\fP で実行されている。 コマンド \fIps\fP +により、どのプロセスが実行されているかやプロセスが持っている番号 (プロセス番号) を表示できる。 コマンド \fIkill\fP +を使うことで、プロセスを取り除くことができる。 オプションなしで実行されると、「いなくなって下さい」というやさしい要求 を行う。"kill \-9" +に続けてプロセス番号を指定すると、指定したプロセスを 直ちに削除する。 foreground プロセスは多くの場合 Control\-C +をタイプすることで 殺すことができる。 +.SS 情報の探し方 +非常にたくさんのコマンドがあり、 それぞれのコマンドにはたくさんのオプションがある。 伝統的には、コマンドの説明は (このドキュメントもそうだが) +\fIman ページ\fP に書かれている。例えば "man kill" コマンドを実行すると、"kill" コマンドの +使い方に関する説明が表示される。(同様に "man man" は "man" コマンドに ついての説明を表示する。) \fIman\fP +プログラムはテキストを \fIpager\fP に渡して表示を行う。 \fIpager\fP として \fIless\fP が使われることが多い。 +次のページに進むにはスペースキーを、終了するには q を押す。 +.PP +ドキュメントでは、他の man ページへの参照は \fBman\fP(1) のように名前とセクション番号で示すのが一般的である。 man +ページは簡潔に書かれており、詳細を忘れたときに素早く情報を見つける ことができる。例や説明とともに入門向けの記載もあるので、初めての人にとっても +役に立つものである。 +.PP +多くの GNU/FSF ソフトウェアには info ファイルが付属している。 "info info" とタイプすると、 \fIinfo\fP +プログラムの使い方の紹介が表示される。 +.PP +.\" +.\" Actual examples? Separate section for each of cat, cp, ...? +.\" gzip, bzip2, tar, rpm +特集記事については HOWTO で扱われることが多い。 \fI/usr/share/doc/howto/en\fP を見るといいだろう。 HTML +ファイルがあった場合はブラウザを使って表示すればよい。 +.SH 関連項目 +\fBash\fP(1), \fBbash\fP(1), \fBchsh\fP(1), \fBcsh\fP(1), \fBdash\fP(1), \fBksh\fP(1), +\fBlocate\fP(1), \fBlogin\fP(1), \fBman\fP(1), \fBxterm\fP(1), \fBzsh\fP(1), \fBwait\fP(2), +\fBstdout\fP(3), \fBman\-pages\fP(7), \fBstandards\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は +\%https://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/manual/LDP_man-pages/draft/man2/intro.2 b/manual/LDP_man-pages/draft/man2/intro.2 index e124eb05..3e16ab9b 100644 --- a/manual/LDP_man-pages/draft/man2/intro.2 +++ b/manual/LDP_man-pages/draft/man2/intro.2 @@ -49,19 +49,14 @@ intro \- システムコールの説明 .IP * 3 引き数と一意なシステムコール番号をカーネルが期待するレジスターにコピーする .IP * -trapping to kernel mode, at which point the kernel does the real work of the -system call; +カーネルがシステムコールの実際の処理を行う時点でカーネルモードに入る .IP * カーネルが CPU をユーザーモードに返した際にシステムコールがエラー番号を返したいれば \fIerrno\fP を設定する .PP -However, in a few cases, a wrapper function may do rather more than this, -for example, performing some preprocessing of the arguments before trapping -to kernel mode, or postprocessing of values returned by the system call. -Where this is the case, the manual pages in Section 2 generally try to note -the details of both the (usually GNU) C library API interface and the raw -system call. Most commonly, the main DESCRIPTION will focus on the C -library interface, and differences for the system call are covered in the -NOTES section. +しかし、ラッパー関数がこれ以上のことを行う場合もいくつかある。例えば、カーネルモードに入る前に引き数に対する前処理を実行したり、システムコールが返した値に対する後処理を行うなどである。このような場合、セクション +2 のマニュアルページでは、基本的に、C ライブラリ API インターフェース (通常は GNU C ライブラリのもの) +と生のシステムコールの両方の詳細をできるだけ説明しようとする。ほとんどの場合、メインとなる「説明」では C +ライブラリのインターフェースに焦点をあてて説明し、システムコールでの差分については「注意」のセクションに説明がある。 .PP Linux のシステムコールのリストについては \fBsyscalls\fP(2) を参照のこと。 .SH 返り値 diff --git a/manual/LDP_man-pages/draft/man3/undocumented.3 b/manual/LDP_man-pages/draft/man3/undocumented.3 index 85b3a845..d1c9c4e6 100644 --- a/manual/LDP_man-pages/draft/man3/undocumented.3 +++ b/manual/LDP_man-pages/draft/man3/undocumented.3 @@ -40,7 +40,7 @@ .\" .TH UNDOCUMENTED 3 2017\-09\-15 Linux "Linux Programmer's Manual" .SH 名前 -undocumented \- undocumented library functions +undocumented \- ドキュメントがないライブラリ関数 .SH 書式 ドキュメントがないライブラリ関数 .SH 説明 diff --git a/manual/LDP_man-pages/draft/man5/intro.5 b/manual/LDP_man-pages/draft/man5/intro.5 new file mode 100644 index 00000000..bf0116f7 --- /dev/null +++ b/manual/LDP_man-pages/draft/man5/intro.5 @@ -0,0 +1,50 @@ +.\" Copyright (c) 1993 Michael Haardt (michael@moria.de), +.\" Fri Apr 2 11:32:09 MET DST 1993 +.\" +.\" %%%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 +.\" the License, or (at your option) any later version. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" 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, see +.\" . +.\" %%%LICENSE_END +.\" +.\" Modified Sat Jul 24 17:06:52 1993 by Rik Faith (faith@cs.unc.edu) +.\" Modified Sun Jan 14 00:34:09 1996 by Andries Brouwer (aeb@cwi.nl) +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.\" +.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved. +.\" Translated Tue 13 Oct 1998 by NAKANO Takeo +.\" +.TH INTRO 5 2017\-03\-13 Linux "Linux Programmer's Manual" +.SH 名前 +intro \- ファイルフォーマットとファイルシステムの紹介 +.SH 説明 +マニュアルの 5 章は、各種のファイルフォーマットと、 (もしあれば) 対応する C の構造体について記載している。 +.PP +また、この章には、各種のファイルシステムについて説明するページも多く含まれている。 +.SH 注意 +.SS 著者と著作権 +著者と著作権に関しては各マニュアルページのソースのヘッダーを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。 +.SH 関連項目 +\fBstandards\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は +\%https://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/manual/LDP_man-pages/draft/man6/intro.6 b/manual/LDP_man-pages/draft/man6/intro.6 index 1ea1d625..90b91797 100644 --- a/manual/LDP_man-pages/draft/man6/intro.6 +++ b/manual/LDP_man-pages/draft/man6/intro.6 @@ -38,8 +38,7 @@ .SH 名前 intro \- ゲームプログラムの紹介 .SH 説明 -Section 6 of the manual describes the games and funny little programs -available on the system. +マニュアルの 6 章は、本システムで利用可能なゲームと 楽しい小物プログラムについて記載している。 .SH 注意 .SS 著者と著作権 著者と著作権に関しては各マニュアルページのソースのヘッダーを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。 diff --git a/manual/LDP_man-pages/draft/man7/feature_test_macros.7 b/manual/LDP_man-pages/draft/man7/feature_test_macros.7 new file mode 100644 index 00000000..ceedca1c --- /dev/null +++ b/manual/LDP_man-pages/draft/man7/feature_test_macros.7 @@ -0,0 +1,598 @@ +.\" 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. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" 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. +.\" +.\"******************************************************************* +.\" +.\" Japanese Version Copyright (c) 2006 Akihiro MOTOKI all rights reserved. +.\" Translated 2006-07-16, Akihiro MOTOKI +.\" 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 +.\" +.TH FEATURE_TEST_MACROS 7 2020\-11\-01 Linux "Linux Programmer's Manual" +.SH 名前 +feature_test_macros \- 機能検査マクロ +.SH 説明 +機能検査マクロ (feature test macro) により、プログラマは プログラムがコンパイルされる際にシステムのヘッダーファイルにより +公開される定義を制御することができる。 +.PP +\fB注意:\fP 機能検査マクロを機能させるには、機能検査マクロの定義を 「どのヘッダーファイルのインクルードよりも前で」行わなければならない。 +これを実現するには、 コンパイルコマンドで指定する方法 (\fIcc \-DMACRO=value\fP) と、ソースコード内で必要なマクロの定義を +どのヘッダーのインクルードよりも前で行う方法がある。どのヘッダーファイルをインクルードするよりも前にこれらのマクロを定義しなければならないという要件が存在するのは、ヘッダーファイルはお互いに自由にインクルードできるからである。そのため、例えば、以下の例では、ヘッダー +\fI\fP 自身が \fI\fP をインクルードしていると、 \fB_GNU_SOURCE\fP +マクロの定義は全く効果がないかもしれない (このようなインクルードは POSIX では明示的に認められている)。 +.PP +.in +4n +.EX +#include +#define _GNU_SOURCE +#include +.EE +.in +.PP +機能検査マクロを使うと、非標準の定義が公開されないようにでき、 移植性のあるアプリケーションを作成するのに役立つ。 +他のマクロを使うと、デフォルトでは公開されない非標準の定義を公開することができる。 +.PP +以下で説明する機能検査マクロのそれぞれの正確な影響を確認するには、 ヘッダーファイル \fI\fP を調べればよい。 +\fB注意\fP: アプリケーションが \fI\fP +を直接インクルードする必要は「ない」。実際のところ、インクルードするのは全く勧められない。「注意」の節を参照。 +.SS マニュアルページでの機能検査マクロの要件の規定 +関数が機能検査マクロの定義を必要とする場合、 マニュアルページの書式 (SYNOPSIS) の節に 以下の形式の注釈を入れる (以下の例は +\fBacct\fP(2) のマニュアルページからの引用である)。 +.PP +.RS +\fB#include \fP +.PP +\fBint acct(const char *\fP\fIfilename\fP\fB);\fP +.PP +.RS -4 +.EX +glibc 向けの機能検査マクロの要件 +(\fBfeature_test_macros\fP(7) +参照): +.EE +.RE +.PP +\fBacct\fP(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500) +.RE +.PP +\fB||\fP は、 \fBacct\fP(2) の定義を \fI\fP +から得るには、以下のマクロの定義のいずれかを、どのヘッダーファイルの インクルードよりも前で行わなければならないことを意味する。 +.PP +.in +4n +.EX +#define _BSD_SOURCE +#define _XOPEN_SOURCE /* 500 未満の任意の値 */ +.EE +.in +.PP +別の方法としては、等価な定義をコンパイル用のコマンドで 指定することもできる。 +.PP +.in +4n +.EX +cc \-D_BSD_SOURCE +cc \-D_XOPEN_SOURCE # 500 未満の任意の値 +.EE +.in +.PP +後で述べるが、 \fB「いくつかの機能検査マクロはデフォルトで定義される」\fP 点に注意すること。 このため、「書式」に記載された機能検査マクロを常に +明示的に指定する必要があるわけではない。 +.PP +あまり多くないが、マニュアルページによっては、 機能検査マクロの要件を以下のように簡単な表現で記載する場合がある。 (以下の例は +\fBreadahead\fP(2) のマニュアルページからの引用である)。 +.PP +.RS +4 +.EX +\fB#define _GNU_SOURCE\fP +\fB#include \fP +.PP +\fBssize_t readahead(int \fP\fIfd\fP\fB, off64_t *\fP\fIoffset\fP\fB, size_t \fP\fIcount\fP\fB);\fP +.EE +.RE +.PP +関数定義の公開に使える機能検査マクロが一つだけで、 デフォルトではそのマクロが定義されない場合に、 この形式の表現を利用する。 +.SS "glibc が解釈する機能検査マクロ" +以下では、Linux glibc 2.\fIx\fP (\fIx\fP > 0) において、 機能検査マクロがどのように扱われるかを説明する。 +.PP +First, though a summary of a few details for the impatient: +.IP * 3 +The macros that you most likely need to use in modern source code are +\fB_POSIX_C_SOURCE\fP (for definitions from various versions of POSIX.1), +\fB_XOPEN_SOURCE\fP (for definitions from various versions of SUS), +\fB_GNU_SOURCE\fP (for GNU and/or Linux specific stuff), and \fB_DEFAULT_SOURCE\fP +(to get definitions that would normally be provided by default). +.IP * +Certain macros are defined with default values. Thus, although one or more +macros may be indicated as being required in the SYNOPSIS of a man page, it +may not be necessary to define them explicitly. Full details of the +defaults are given later in this man page. +.IP * +Defining \fB_XOPEN_SOURCE\fP with a value of 600 or greater produces the same +effects as defining \fB_POSIX_C_SOURCE\fP with a value of 200112L or greater. +Where one sees +.IP +.in +4n +.EX +_POSIX_C_SOURCE >= 200112L +.EE +.in +.IP +in the feature test macro requirements in the SYNOPSIS of a man page, it is +implicit that the following has the same effect: +.IP +.in +4n +.EX +_XOPEN_SOURCE >= 600 +.EE +.in +.IP * +Defining \fB_XOPEN_SOURCE\fP with a value of 700 or greater produces the same +effects as defining \fB_POSIX_C_SOURCE\fP with a value of 200809L or greater. +Where one sees +.IP +.in +4n +.EX +_POSIX_C_SOURCE >= 200809L +.EE +.in +.IP +in the feature test macro requirements in the SYNOPSIS of a man page, it is +implicit that the following has the same effect: +.IP +.in +4n +.EX +_XOPEN_SOURCE >= 700 +.EE +.in +.\" 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. +.PP +Linux/glibc は以下の機能検査マクロを解釈する: +.TP +\fB__STRICT_ANSI__\fP +ISO 標準の C。 \fBgcc\fP(1) を \fI\-std=c99\fP や \fI\-ansi\fP などのフラグを付けて起動した場合、 +このマクロは暗黙のうちに定義される。 +.TP +\fB_POSIX_C_SOURCE\fP +このマクロを定義すると、ヘッダーファイルで以下の定義が公開される。 +.RS +.IP \(bu 3 +値が 1 の場合、POSIX.1\-1990 と ISO C (1990) に準拠する定義が公開される。 +.IP \(bu +値が 2 以上の場合、 POSIX.2\-1992 関連の定義も追加で公開される。 +.IP \(bu +.\" 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 +基本仕様に対応する定義も追加で公開される。また C95 (glibc 2.12 以降) と C99 (glibc 2.10 以降) の機能も公開される +(言い換えると、 \fB_ISOC99_SOURCE\fP を定義するのと等価である)。 +.IP \(bu +(glibc 2.10 以降) 値が 200809L 以上の場合、 (XSI 拡張を除く) POSIX.1\-2008 +基本仕様に対応する定義が追加で公開される。 +.RE +.TP +\fB_POSIX_SOURCE\fP +このマクロは廃止予定である。 このマクロが定義されると、値に関わらず、 \fB_POSIX_C_SOURCE\fP を値 1 で定義するのと等価となる。 +.IP +Since this macro is obsolete, its usage is generally not documented when +discussing feature test macro requirements in the man pages. +.TP +\fB_XOPEN_SOURCE\fP +このマクロを定義すると、ヘッダーファイルで以下の定義が公開される。 +.RS +.IP \(bu 3 +どんな値でも、ヘッダーファイルで POSIX.1, POSIX.2, XPG4 に準拠する定義が公開される。 +.IP \(bu +値が 500 以上の場合、 SUSv2 (UNIX 98) 関連の定義が追加で公開される。 +.IP \(bu +(glibc 2.2 以降) 値が 600 以上の場合、 SUSv3 (UNIX 03; POSIX.1\-2001 基本仕様 + XSI 拡張と同じ) +関連の定義と C99 での定義が追加で公開される。 +.IP \(bu +(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 +.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 +.IP +In addition, defining \fB_XOPEN_SOURCE\fP with a value of 500 or greater +produces the same effects as defining \fB_XOPEN_SOURCE_EXTENDED\fP. +.TP +\fB_XOPEN_SOURCE_EXTENDED\fP +このマクロが定義され、さらに \fB_XOPEN_SOURCE\fP が定義されていると、XPG4v2 (SUSv1) UNIX 拡張 (UNIX 95) +に対応する定義が公開される。 \fB_XOPEN_SOURCE\fP が 500 以上の値で定義するのは \fB_XOPEN_SOURCE_EXTENDED\fP +を定義するのと同じ効果となる。新しいソースコードで \fB_XOPEN_SOURCE_EXTENDED\fP を使用するのは避けるべきである。 +.IP +Since defining \fB_XOPEN_SOURCE\fP with a value of 500 or more has the same +effect as defining \fB_XOPEN_SOURCE_EXTENDED\fP, the latter (obsolete) feature +test macro is generally not described in the SYNOPSIS in man pages. +.TP +\fB_ISOC99_SOURCE\fP (glibc 2.1.3 以降) +ISO C99 標準に準拠した宣言を公開する。 +.IP +初期のバージョン 2.1.x の glibc では、これと等価な \fB_ISOC9X_SOURCE\fP という名前のマクロが使われていた +(なぜなら、C99 標準はまだ確定していなかったからである)。 \fB_ISOC9X_SOURCE\fP マクロの使用は廃止されているが、 glibc +は過去との互換性のため今でもこのマクロを認識する。 +.IP +\fB_ISOC99_SOURCE\fP を定義すると、 ISO C (1990) Amendment 1 ("C95") の定義も公開される (C95 +での主要な変更点は国際化文字集合のサポートであった)。 +.IP +Invoking the C compiler with the option \fI\-std=c99\fP produces the same +effects as defining this macro. +.TP +\fB_ISOC11_SOURCE\fP (glibc 2.16 以降) +ISO C11 標準に準拠した宣言を公開する。 このマクロを定義すると (\fB_ISOC99_SOURCE\fP 同様) C99 と C95 +の機能も有効になる。 +.IP +Invoking the C compiler with the option \fI\-std=c11\fP produces the same +effects as defining this macro. +.TP +\fB_LARGEFILE64_SOURCE\fP +LFS (Large File Summit) により "暫定拡張 (transitional extension)" Single UNIX +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\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 を実行する際に役立つ +(このマクロを定義すると、コンパイルし直すだけで大きなファイルを 扱えるプログラムを書くことができる)。 +.IP +64 ビットシステムは、もともと 2 ギガバイトより大きなファイルを 扱えるので、64 ビットシステムではこのマクロは効果を持たない。 +.TP +\fB_BSD_SOURCE\fP (glibc 2.20 以降では非推奨) +このマクロを定義すると、値に関わらず、ヘッダーファイルで BSD 由来の定義が公開される。 +.IP +バージョン 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 由来の定義が優先されることはもはやなくなった。 +.IP +.\" 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 (glibc 2.20 以降では非推奨) +このマクロを定義すると (値に関わらず) ヘッダーファイルで System V 由来の定義が公開される (SVID == System V +Interface Definition; \fBstandards\fP(7) 参照)。 +.IP +glibc 2.20 以降、 \fB_BSD_SOURCE\fP と同様にこのマクロは非推奨となっている。 +.TP +\fB_DEFAULT_SOURCE\fP (glibc 2.19 以降) +このマクロを使うと、「デフォルト」が無効になるような場合でも「デフォルト」の定義が提供されるようにすることができる。「デフォルト」が無効になるような状況は、個別のマクロが明示的に定義された場合や、コンパイラが「標準」モードのいずれか +(例えば \fIcc\ \-std=c99\fP) +で起動された場合などである。他の個々のマクロが定義されず、コンパイラも「標準」モードのいずれかを指定して起動されていない場合は、 +\fB_DEFAULT_SOURCE\fP を定義しても何の効果もない。 +.IP +「デフォルト」定義は、 POSIX.1\-2008 と ISO C99 で必須となっている定義と、もともとは BSD と System V +由来の種々の定義を公開する。 glibc 2.19 以前では、これらのデフォルトは以下を明示的に定義するのとほぼ等価である。 +.IP + cc \-D_BSD_SOURCE \-D_SVID_SOURCE \-D_POSIX_C_SOURCE=200809 +.TP +\fB_ATFILE_SOURCE\fP (glibc 2.4 以降) +このマクロを定義すると (値に関わらず) ヘッダーファイルで 名前の末尾が "at" の各種の関数の定義が公開される。 \fBopenat\fP(2) +参照。 glibc 2.10 以降では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定義された場合には、 +このマクロも暗黙のうちに定義される。 +.TP +\fB_GNU_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)。 +.IP +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 +.\" Zack Weinberg +.\" There did once exist C libraries where it was necessary. The ones +.\" I remember were proprietary Unix vendor libcs from the mid-1990s +.\" You would get completely unlocked stdio without _REENTRANT. +Historically, on various C libraries it was necessary to define this macro +in all multithreaded code. (Some C libraries may still require this.) In +glibc, this macro also exposed definitions of certain reentrant functions. +.IP +However, glibc has been thread\-safe by default for many years; since glibc +2.3, the only effect of defining \fB_REENTRANT\fP has been to enable one or two +of the same declarations that are also enabled by defining +\fB_POSIX_C_SOURCE\fP with a value of 199606L or greater. +.IP +\fB_REENTRANT\fP is now obsolete. In glibc 2.25 and later, defining +\fB_REENTRANT\fP is equivalent to defining \fB_POSIX_C_SOURCE\fP with the value +199606L. If a higher POSIX conformance level is selected by any other means +(such as \fB_POSIX_C_SOURCE\fP itself, \fB_XOPEN_SOURCE\fP, \fB_DEFAULT_SOURCE\fP, or +\fB_GNU_SOURCE\fP), then defining \fB_REENTRANT\fP has no effect. +.IP +This macro is automatically defined if one compiles with \fIcc\ \-pthread\fP. +.TP +\fB_THREAD_SAFE\fP +(非推奨の) \fB_REENTRANT\fP の同義語。 他のいくつかの実装との互換性を提供するためのもの。 +.TP +\fB_FORTIFY_SOURCE\fP (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 +.\" * From: Jakub Jelinek +.\" * To: gcc-patches at gcc dot gnu dot org +.\" * Date: Tue, 21 Sep 2004 04:16:40 -0400 +.\" Look for __USE_FORTIFY_LEVEL in the header files +Defining this macro causes some lightweight checks to be performed to detect +some buffer overflow errors when employing various string and memory +manipulation functions (for example, \fBmemcpy\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), +and wide character variants thereof). For some functions, argument +consistency is checked; for example, a check is made that \fBopen\fP(2) has +been supplied with a \fImode\fP argument when the specified flags include +\fBO_CREAT\fP. Not all problems are detected, just some common cases. +.IP +.\" For example, given the following code +.\" int d; +.\" char buf[1000], buf[1000]; +.\" strcpy(fmt, "Hello world\n%n"); +.\" snprintf(buf, sizeof(buf), fmt, &d); +.\" +.\" Compiling with "gcc -D_FORTIFY_SOURCE=2 -O1" and then running will +.\" cause the following diagnostic at run time at the snprintf() call +.\" +.\" *** %n in writable segment detected *** +.\" Aborted (core dumped) +.\" +\fB_FORTIFY_SOURCE\fP が 1 に設定された場合、コンパイラの最適化レベルが 1 (\fIgcc\ \-O1\fP) +かそれ以上であれば、規格に準拠するプログラムの振る舞いを 変化させないようなチェックが実行される。 \fB_FORTIFY_SOURCE\fP が 2 +に設定された場合、さらなるチェックが追加されるが、 規格に準拠するプログラムのいくつかが失敗する可能性がある。 +.IP +いくつかのチェックは (ヘッダーファイルに実装されたマクロのロジックにより) +コンパイル時に実行でき、コンパイラの警告として表示される。他のチェックは実行時に行われ、チェックに失敗した場合には実行時エラーとなる。 +.IP +このマクロを使用するにはコンパイラの対応が必要であり、 バージョン 4.0 以降の \fBgcc\fP(1) で利用できる。 +.SS デフォルトの定義、暗黙の定義、組み合わせ定義 +機能検査マクロが一つも明示的に定義されなかった場合、 デフォルトで機能検査マクロ \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_ISOC11_SOURCE\fP (glibc 2.18 以降), +\fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP, \fB_XOPEN_SOURCE\fP, +\fB_XOPEN_SOURCE_EXTENDED\fP (glibc 2.11 以前), \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 はデフォルトでは定義されない。 +.PP +\fB_POSIX_SOURCE\fP と \fB_POSIX_C_SOURCE\fP が明示的に定義されない場合で、 \fB__STRICT_ANSI__\fP +が定義されない、もしくは \fB_XOPEN_SOURCE\fP が 500 以上の値で定義されたときには、 +.IP * 3 +\fB_POSIX_SOURCE\fP が値 1 で定義され、かつ +.IP * +\fB_POSIX_C_SOURCE\fP は以下の値のいずれか一つで定義される。 +.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 (\fB_XOPEN_SOURCE\fP が 600 以上 700 未満の値で定義された場合) +.IP \(bu +(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 のバージョンにより異なる。 +.IP \(bu +\fB_XOPEN_SOURCE\fP が未定義の場合、 \fB_POSIX_C_SOURCE\fP の値は glibc のバージョンにより異なる。 バージョン +2.4 より前の glibc では 199506L、 バージョン 2.4 以降 2.9 未満では 200112L、 glibc 2.10 以降では +200809L となる。 +.RE +.PP +また、複数のマクロを定義することもできる。 この場合、定義したマクロはすべて有効になる。 +.SH 準拠 +POSIX.1 では \fB_POSIX_C_SOURCE\fP, \fB_POSIX_SOURCE\fP, \fB_XOPEN_SOURCE\fP が規定されている。 +.PP +\fB_XOPEN_SOURCE_EXTENDED\fP は XPG4v2 (別名 SUSv1) で規定されていたが、 SUSv2 以降には存在しない。 +\fB_FILE_OFFSET_BITS\fP はどの標準でも規定されていないが、 他のいくつかの実装で採用されている。 +.PP +\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\fP は Linux/glibc 固有のヘッダーファイルである。 +他のシステムにも同様の目的のファイルがあるが、普通は違う名前である。 このヘッダーファイルは、他のヘッダーファイルにより必要に応じて +自動的にインクルードされる。機能検査マクロを利用するために 明示的にインクルードする必要はない。 +.PP +上記の機能検査マクロのうちどれが定義されたかにしたがって、 \fI\fP は、他の glibc +ヘッダーファイルでチェックされる各種の他のマクロを、 内部で定義する。これらのマクロの名前はアンダースコア 2つで始まる (例えば +\fB__USE_MISC\fP)。 ユーザープログラムはこれらのマクロを \fI決して\fP 直接定義すべきではない。 +代わりに、上記のリストにある適切な機能検査マクロを利用すべきである。 +.SH 例 +下記のプログラムを使うと、各種の機能検査マクロが glibc のバージョン に応じてどのように設定されるかや、どの機能検査マクロが明示的に +設定されるか、を調べることができる。 以下に示すシェルセッションは、 glibc 2.10 のシステムでの実行結果の例である。 +.PP +.in +4n +.EX +$ \fBcc ftm.c\fP +$ \fB./a.out\fP +_POSIX_SOURCE defined +_POSIX_C_SOURCE defined: 200809L +_BSD_SOURCE defined +_SVID_SOURCE defined +_ATFILE_SOURCE defined +$ \fBcc \-D_XOPEN_SOURCE=500 ftm.c\fP +$ \fB./a.out\fP +_POSIX_SOURCE defined +_POSIX_C_SOURCE defined: 199506L +_XOPEN_SOURCE defined: 500 +$ \fBcc \-D_GNU_SOURCE ftm.c\fP +$ \fB./a.out\fP +_POSIX_SOURCE defined +_POSIX_C_SOURCE defined: 200809L +_ISOC99_SOURCE defined +_XOPEN_SOURCE defined: 700 +_XOPEN_SOURCE_EXTENDED defined +_LARGEFILE64_SOURCE defined +_BSD_SOURCE defined +_SVID_SOURCE defined +_ATFILE_SOURCE defined +_GNU_SOURCE defined +.EE +.in +.SS プログラムのソース +\& +.EX +/* ftm.c */ + +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ +#ifdef _POSIX_SOURCE + printf("_POSIX_SOURCE defined\en"); +#endif + +#ifdef _POSIX_C_SOURCE + printf("_POSIX_C_SOURCE defined: %jdL\en", + (intmax_t) _POSIX_C_SOURCE); +#endif + +#ifdef _ISOC99_SOURCE + 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 + +#ifdef _XOPEN_SOURCE_EXTENDED + printf("_XOPEN_SOURCE_EXTENDED defined\en"); +#endif + +#ifdef _LARGEFILE64_SOURCE + printf("_LARGEFILE64_SOURCE defined\en"); +#endif + +#ifdef _FILE_OFFSET_BITS + printf("_FILE_OFFSET_BITS defined: %d\en", _FILE_OFFSET_BITS); +#endif + +#ifdef _BSD_SOURCE + printf("_BSD_SOURCE defined\en"); +#endif + +#ifdef _SVID_SOURCE + printf("_SVID_SOURCE defined\en"); +#endif + +#ifdef _DEFAULT_SOURCE + printf("_DEFAULT_SOURCE defined\en"); +#endif + +#ifdef _ATFILE_SOURCE + printf("_ATFILE_SOURCE defined\en"); +#endif + +#ifdef _GNU_SOURCE + printf("_GNU_SOURCE defined\en"); +#endif + +#ifdef _REENTRANT + printf("_REENTRANT defined\en"); +#endif + +#ifdef _THREAD_SAFE + printf("_THREAD_SAFE defined\en"); +#endif + +#ifdef _FORTIFY_SOURCE + printf("_FORTIFY_SOURCE defined\en"); +#endif + + exit(EXIT_SUCCESS); +} +.EE +.SH 関連項目 +\fBlibc\fP(7), \fBstandards\fP(7), \fBsystem_data_types\fP(7) +.PP +.\" But beware: the info libc document is out of date (Jul 07, mtk) +\fIinfo libc\fP の "Feature Test Macros" の節。 +.PP +\fI/usr/include/features.h\fP +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は +\%https://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/manual/LDP_man-pages/draft/man7/intro.7 b/manual/LDP_man-pages/draft/man7/intro.7 index 46ecb88c..6dc0a5b2 100644 --- a/manual/LDP_man-pages/draft/man7/intro.7 +++ b/manual/LDP_man-pages/draft/man7/intro.7 @@ -38,7 +38,7 @@ .\" .TH INTRO 7 2007\-10\-23 Linux "Linux Programmer's Manual" .SH 名前 -intro \- introduction to overview and miscellany section +intro \- 概要やその他の説明 .SH 説明 マニュアルの 7 章には様々な事柄の概要が書かれている。 習慣、プロトコル、文字集合の規格、ファイルシステムの構成、 その他の雑多なことについて説明している。 diff --git a/manual/LDP_man-pages/draft/man7/man-pages.7 b/manual/LDP_man-pages/draft/man7/man-pages.7 new file mode 100644 index 00000000..7d6a235a --- /dev/null +++ b/manual/LDP_man-pages/draft/man7/man-pages.7 @@ -0,0 +1,774 @@ +.\" (C) Copyright 1992-1999 Rickard E. Faith and David A. Wheeler +.\" (faith@cs.unc.edu and dwheeler@ida.org) +.\" and (C) Copyright 2007 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. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END +.\" +.\" 2007-05-30 created by mtk, using text from old man.7 plus +.\" rewrites and additional text. +.\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.\" +.\" Japanese Version Copyright (c) 2007 Akihiro MOTOKI +.\" all rights reserved. +.\" Translated 2007-06-13, Akihiro MOTOKI , LDP v2.54 +.\" Updated 2007-07-04, Akihiro MOTOKI , LDP v2.59 +.\" Updated 2007-09-03, Akihiro MOTOKI , LDP v2.64 +.\" Updated 2008-08-09, Akihiro MOTOKI , LDP v3.05 +.\" Updated 2013-05-04, Akihiro MOTOKI +.\" Updated 2013-07-24, Akihiro MOTOKI +.\" Updated 2013-08-21, Akihiro MOTOKI , LDP v3.53 +.\" +.TH MAN\-PAGES 7 2020\-08\-13 Linux "Linux Programmer's Manual" +.SH 名前 +man\-pages \- Linux の man ページを書く際の決まり事 +.SH 書式 +\fBman\fP [\fIsection\fP] \fItitle\fP +.SH 説明 +This page describes the conventions that should be employed when writing man +pages for the Linux \fIman\-pages\fP project, which documents the user\-space API +provided by the Linux kernel and the GNU C library. The project thus +provides most of the pages in Section 2, many of the pages that appear in +Sections 3, 4, and 7, and a few of the pages that appear in Sections 1, 5, +and 8 of the man pages on a Linux system. The conventions described on this +page may also be useful for authors writing man pages for other projects. +.SS マニュアルページのセクション +マニュアルのセクションは、習慣的に以下のような定義が用いられている: +.TP +\fB1 ユーザーコマンド (プログラム)\fP +Commands that can be executed by the user from within a shell. +.TP +\fB2 システムコール\fP +Functions which wrap operations performed by the kernel. +.TP +\fB3 ライブラリコール\fP +All library functions excluding the system call wrappers (Most of the +\fIlibc\fP functions). +.TP +\fB4 スペシャルファイル (デバイス)\fP +Files found in \fI/dev\fP which allow to access to devices through the kernel. +.TP +\fB5 ファイルのフォーマットと設定ファイル\fP +Describes various human\-readable file formats and configuration files. +.TP +\fB6 ゲーム\fP +Games and funny little programs available on the system. +.TP +\fB7 概要、約束事、その他\fP +Overviews or descriptions of various topics, conventions and protocols, +character set standards, the standard filesystem layout, and miscellaneous +other things. +.TP +\fB8 システム管理コマンド\fP +.\" .TP +.\" .B 9 Kernel routines +.\" This is an obsolete manual section. +.\" Once it was thought a good idea to document the Linux kernel here, +.\" but in fact very little has been documented, and the documentation +.\" that exists is outdated already. +.\" There are better sources of +.\" information for kernel developers. +\fBmount\fP(8) のような root のみが実行可能なコマンド。 +.SS マクロパッケージ +新しいマニュアルページは \fBman\fP(7) で説明されている \fBgroff an.tmac\fP パッケージを使って記述すべきである。 +この方針は一貫性の確保が主な理由である。既存の Linux のマニュアルページ の圧倒的多数がこれらのマクロを使って記述されている。 +.SS ソースファイルの配置に関する決まり事 +マニュアルページのソースコードの 1行の長さは 可能な限り 75文字を越えないようにしてほしい。 こうすることで、パッチをメール本文に載せて送る場合に、 +メールクライアントによる行折り返しを回避することができる。 +.SS タイトル行 +man ページの最初の行は \fBTH\fP コマンドにすべきである。 +.PP +.RS +\fB\&.TH\fP \fItitle section date source manual\fP +.RE +.PP +The arguments of the command are as follows: +.TP +\fItitle\fP +man ページのタイトル。全部大文字で記載する (例: \fIMAN\-PAGES\fP)。 +.TP +\fIsection\fP +man ページが属するセクション番号 (例: \fI7\fP)。 +.TP +\fIdate\fP +man ページに最後に些細でない変更が行われた日付。 (\fIman\-pages\fP プロジェクトでは、 +このタイムスタンプの必要な更新はスクリプトで自動的に行われるので、 パッチの中でこの日付を手動で更新する必要はない。) 日付は YYYY\-MM\-DD +形式で記載すること。 +.TP +\fIsource\fP +コマンド、関数、システムコールの出自。 +.IP +数少ないセクション 1 と 8 のページの場合、おそらく単に \fIGNU\fP とだけ書くことが多いだろう。 +.IP +システムコールの場合、単に \fILinux\fP とだけ書く。 (以前の慣習では、マニュアルページを記載した/内容を確認したカーネルの +バージョン番号を記載していた。しかし、バージョン番号が実際の内容と 一致していることはなく、そのためバージョン番号がないよりも +おそらく悪い形になっていた。 今後は、バージョン番号を含めるのは避けること。) +.IP +glibc のライブラリコールや その他の一般的な GNU ライブラリのライブラリコールの場合、 単に \fIGNU C Library\fP, \fIGNU\fP +と書くか、空の文字列を使う。 +.IP +セクション 4 のページでは \fILinux\fP を使う。 +.IP +よくわからない場合は、 \fILinux\fP とか \fIGNU\fP と書いておく。 +.TP +\fImanual\fP +.\" +マニュアルのタイトル (例: \fIman\-pages\fP パッケージのセクション 2 および 3 のページの場合には、 \fILinux +Programmer's Manual\fP を使うこと)。 +.SS マニュアルページのセクション +昔から使われてきたセクション名を以下のリストに示す。 これらを使うと良いだろう。 一般的に、マニュアルページは、少なくとも \fB色つき\fP +のセクションを持つのが望ましい。 新しくマニュアルページを作成する際には、だいたい以下のリストに示した 順序でセクションを配置するようにしてもらいたい。 +.PP +.RS +.TS +l l. +\fB名前 (NAME)\fP +\fB書式 (SYNOPSIS)\fP +CONFIGURATION [Normally only in Section 4] +\fB説明 (DESCRIPTION)\fP +OPTIONS [Normally only in Sections 1, 8] +EXIT STATUS [Normally only in Sections 1, 8] +返り値 [Normally only in Sections 2, 3] +.\" May 07: Few current man pages have an ERROR HANDLING section,,, +.\" ERROR HANDLING, +ERRORS [Typically only in Sections 2, 3] +.\" May 07: Almost no current man pages have a USAGE section,,, +.\" USAGE, +.\" DIAGNOSTICS, +.\" May 07: Almost no current man pages have a SECURITY section,,, +.\" SECURITY, +ENVIRONMENT +ファイル +VERSIONS [Normally only in Sections 2, 3] +ATTRIBUTES [Normally only in Sections 2, 3] +準拠 +注意 +バグ +例 +.\" AUTHORS sections are discouraged +AUTHORS [Discouraged] +REPORTING BUGS [Not used in man\-pages] +COPYRIGHT [Not used in man\-pages] +\fB関連項目 (SEE ALSO)\fP +.TE +.RE +.PP +「伝統的に使われてきた見出しが使える場合には、それを使ってほしい。」 この種の一貫性を保つことで、情報を理解しやすくなるからである。 +どうしても必要な場合には、理解しやすくなるように独自の見出しを 作ってもよい (特にセクション 4 や 5 のページではこうした方が +わかりやすくなる)。ただし、そうする前に、伝統的な見出しを使い、 そのセクション内にサブセクション (\fI.SS\fP) を設けることで +対応できないか考えてほしい。 +.PP +以下のリストでは、上記のセクションのそれぞれの内容について 詳しく説明する。 +.TP +\fB名前 (NAME)\fP +このマニュアルページの名前 +.IP +\&\fB.SH NAME\fP コマンドの後に続ける行の重要な情報については \fBman\fP(7) を参照。この行のすべての単語は ("\e\-" +の直後の単語も含め) 小文字にすべきである。但し、英語や技術用語の慣例として別の記載をする場合はこの限りではない。 +.TP +\fB書式 (SYNOPSIS)\fP +コマンドや関数インターフェースの簡潔な概要 +.IP +コマンドに対しては、コマンドや引き数 (オプション) の文法を書く。 そのまま書くテキストにはボールド体を用い、置き換える引き数には +イタリック体を用いる。省略可能なオプションはブラケット ([]) で囲い、 選択肢は縦棒 (|) で区切り、繰り返しには省略符号 (...) を書く。 +関数に対しては、必要なデータ宣言や \fB#include\fP 指定を書き、関数宣言を続ける。 +.IP +.\" FIXME . Say something here about compiler options +ヘッダーファイルから関数 (や変数) の定義を得るために 機能検査マクロ (feature test macro) を定義しなければならない場合、 書式 +(SYNOPSIS) に必要な機能検査マクロを記載すべきである。 機能検査マクロについては \fBfeature_test_macros\fP(7) +で説明されている。 +.TP +\fBCONFIGURATION\fP +デバイスの設定詳細。 +.IP +通常、このセクションは 4 章のマニュアルページでのみ登場する。 +.TP +\fB説明 (DESCRIPTION)\fP +プログラム・関数・フォーマットの動作・目的。 +.IP +.\" If there is some kind of input grammar or complex set of subcommands, +.\" consider describing them in a separate +.\" .B USAGE +.\" section (and just place an overview in the +.\" .B DESCRIPTION +.\" section). +ファイルや標準入力をどのように処理し、標準出力や標準エラー出力を どのように生成するかといったことについて述べる。 +内部動作や実装の詳細については省略する (ただしそれが動作の理解にどうしても必要なら別)。 通常の場合について記述する。 +プログラムのコマンドラインオプションの説明には、 \fBオプション\fP のセクションを用いる。 +.IP +システムコールやライブラリ関数の新しい動作や新しいフラグについて説明する際は、 変更が取り込まれたカーネルや C +ライブラリのバージョンを注記に入れるように気を付けること。 フラグにこの情報の注記を入れる方法としては、推奨される方法は、 以下のように \fB.TP\fP +リストの一部にすることである (この例はシステムコールの新しいフラグの場合)。 +.RS 16 +.TP + \fBXYZ_FLAG\fP (Linux 3.7 以降) +フラグの説明... +.RE +.IP +バージョン情報を入れておくのは、 古いバージョンのカーネルや C ライブラリを使わざるを得ないユーザーにとって、 特に有用である +(例えば、組み込みシステムではよくあることである)。 +.TP +\fBオプション (OPTIONS)\fP +プログラムが受け付けるコマンドラインオプションとその場合プログラムの振舞いがどう変わるかの説明。 +.IP +.\" .TP +.\" .B USAGE +.\" describes the grammar of any sublanguage this implements. +このセクションはセクション 1 と 8 のマニュアルページにだけ登場すべきである。 +.TP +\fB終了ステータス (EXIT STATUS)\fP +プログラムの終了ステータスの値とそれらの値に対応する状況の一覧。 +.IP +このセクションはセクション 1 と 8 のマニュアルページにだけ登場すべきである。 +.TP +\fB返り値 (RETURN VALUE)\fP +セクション 2 と 3 のページの場合、このセクションに ライブラリルーチンが呼び出し元に返す値のリストを記載する。 +それらの値が返された場合の状態に対する説明も書く。 +.TP +\fBエラー (ERRORS)\fP +セクション 2 と 3 のマニュアルページでは、 エラーが発生した場合に \fIerrno\fP に設定される可能性がある値のリストを記載する。 +リストには、エラーの値とエラーの原因についての情報を書く。 +.IP +Where several different conditions produce the same error, the preferred +approach is to create separate list entries (with duplicate error names) for +each of the conditions. This makes the separate conditions clear, may make +the list easier to read, and allows metainformation (e.g., kernel version +number where the condition first became applicable) to be more easily +marked for each condition. +.IP +「エラーリストはアルファベット順にすべきである。」 +.TP +\fB環境変数 (ENVIRONMENT)\fP +プログラムや関数に影響する環境変数の一覧と、それらの影響の説明。 +.TP +\fBファイル (FILES)\fP +プログラムや関数が用いるファイルの一覧。 設定ファイル、起動ファイル、プログラムが直接操作するファイルなど。 +.IP +.\" May 07: Almost no current man pages have a DIAGNOSTICS section; +.\" "RETURN VALUE" or "EXIT STATUS" is preferred. +.\" .TP +.\" .B DIAGNOSTICS +.\" gives an overview of the most common error messages and how to +.\" cope with them. +.\" You don't need to explain system error messages +.\" or fatal signals that can appear during execution of any program +.\" unless they're special in some way to the program. +.\" +.\" May 07: Almost no current man pages have a SECURITY section. +.\".TP +.\".B SECURITY +.\"discusses security issues and implications. +.\"Warn about configurations or environments that should be avoided, +.\"commands that may have security implications, and so on, especially +.\"if they aren't obvious. +.\"Discussing security in a separate section isn't necessary; +.\"if it's easier to understand, place security information in the +.\"other sections (such as the +.\" .B DESCRIPTION +.\" or +.\" .B USAGE +.\" section). +.\" However, please include security information somewhere! +これらのファイルのファイル名はフルパスで記載し、 ディレクトリの部分はユーザーの好みに合わせて インストール処理で変更できるようにする。 +多くのプログラムではデフォルトのインストール先は \fI/usr/local\fP である。したがってベースとなるマニュアルページでも +\fI/usr/local\fP が使われていることが多いだろう。 +.TP +\fB属性 (ATTRIBUTES)\fP +A summary of various attributes of the function(s) documented on this page. +See \fBattributes\fP(7) for further details. +.TP +\fBバージョン (VERSIONS)\fP +システムコールやライブラリ関数が登場したり、動作の重要な変更が行われた、 Linux カーネルや glibc のバージョンについての簡潔な概要。 +.IP +一般に、全ての新しいインターフェイスは、マニュアルページに 「バージョン」の節を設けるべきである。 +残念なことに、多くの既存のマニュアルページにこの情報は含まれていない (これらのページが書かれた時点ではそのようなポリシーはなかったからである)。 +これを改善するパッチは歓迎されるが、 新しいコードを書くプログラマの観点からすれば、 おそらくこの情報が重要になるのは、 Linux 2.4 +以降で追加されたカーネルインターフェイス (カーネル 2.2 からの変更) と glibc バージョン 2.1 以降で追加されたライブラリ関数 +(glibc 2.0 からの変更) についてのみであろう。 +.IP +\fBsyscalls\fP(2) マニュアルページにも、いろいろなシステムコールが初めて登場した カーネルバージョンについての情報が書かれている。 +.TP +\fB準拠 (CONFORMING TO)\fP +そのマニュアルページで説明している関数やコマンドに関連する標準規格や慣習について説明。 +.IP +様々な標準を示すのに適した用語は \fBstandards\fP(7) に見出しでリストになっている。 +.IP +セクション 2 や 3 のページでは、このセクションで システムコールや関数が準拠する POSIX.1 のバージョンと、 C99 +で規定されているかに触れるべきである。 (SUS, SUSv2, XPG などの他の標準規格や、SVr4 や 4.xBSD の実装標準に +ついては、説明しているコールがこれらの規格で規定されており POSIX.1 の現行バージョンで規定されていない場合以外は、 +あまり深く気にする必要はない。) +.IP +そのコールがどの標準にも基づいていないが、 他のシステムで広く存在する場合は、その旨を記載すること。 そのコールが Linux +固有の場合は、その旨を記載すること。 +.IP +(そうなっているページが多いが) このセクションの内容が標準のリスト だけの場合、リストの最後にピリオド (\(aq.\(aq) を置くこと。 +.TP +\fB注意 (NOTES)\fP +その他の注記。 +.IP +セクション 2 と 3 のマニュアルページでは、 \fILinux での注意 (Linux Notes)\fP や \fIglibc での注意 (Glibc +Notes)\fP という名前のサブセクション (\fBSS\fP) を設けると便利なこともある。 +.IP +In Section 2, use the heading \fIC library/kernel differences\fP to mark off +notes that describe the differences (if any) between the C library wrapper +function for a system call and the raw system call interface provided by the +kernel. +.TP +\fBバグ (BUGS)\fP +制限、知られている欠陥や不便な点、その他不思議な動作など。 +.TP +\fBEXAMPLES\fP +この関数、ファイル、コマンドをどのように使うかを示す、1〜2 個の例。 +.IP +For details on writing example programs, see \fIExample programs\fP below. +.TP +\fB著者 (AUTHORS)\fP +文書やプログラムの著者の一覧。 +.IP +\fB著者セクションは極力使用しないこと。\fP 一般的には、著者のリストを各ページに撒き散らさない方がよい +(時間がたつと、作者のリストは膨大になる可能性がある)。 マニュアルページを新規に書いたり、大幅に修正を行った場合には、 +ソースファイルにコメントとして著作権表示を追加すること。 あなたがデバイスドライバの作者で、バグを報告するためのアドレスを +載せたい場合は、「バグ」セクションの後ろにこのセクションを配置すること。 +.TP +\fBREPORTING BUGS\fP +The \fIman\-pages\fP project doesn't use a REPORTING BUGS section in manual +pages. Information on reporting bugs is instead supplied in the +script\-generated COLOPHON section. However, various projects do use a +REPORTING BUGS section. it is recommended to place it near the foot of the +page. +.TP +\fBCOPYRIGHT\fP +The \fIman\-pages\fP project doesn't use a COPYRIGHT section in manual pages. +Copyright information is instead maintained in the page source. In pages +where this section is present, it is recommended to place it near the foot +of the page, just above SEE ALSO. +.TP +\fB関連項目 (SEE ALSO)\fP +関連するマニュアルページのコンマ区切りのリスト。 可能なら関連する他の文書も書く。 +.IP +The list should be ordered by section number and then alphabetically by +name. Do not terminate this list with a period. +.IP +関連項目のリストに長いマニュアルページ名が多く含まれる場合には、出力を見やすくするために \fI.ad l\fP (右揃えをしない) や \fI.nh\fP +(ハイフンによる折り返しをしない) を活用するとよい。個々のページ名のハイフンによる折り返しは、単語の前に "\e%" を付けることで防ぐことができる。 +.IP +FOSS プロジェクトやそのドキュメントは本質的に分散して自律的に行われるので、 +「関連項目」セクションに他のプロジェクトが提供するマニュアルページへの参照を含める必要がときとしてあり、多くの場合は含めるのが望ましい場合がある。 +.SH スタイルガイド +以下の節では\fIman\-pages\fPプロジェクトで推奨のスタイルについて説明している。 ここで触れられていない点については、"the Chicago +Manual of Style" がたいていはよい情報源になるだろう。 +また、すでに使用されているスタイルについてはプロジェクトのソースツリーを検索してみてほしい。 +(訳注:この章では英語の原文でのスタイルについて説明しており、日本語マニュアルにはあわない点もあるため、具体例などは英語のままとしている箇所もあります。) +.SS 性別の区別のない表現の使用 +.\" +可能な限り、マニュアルページの文章では性別の区別のない表現を使用すること。 性別に区別のない単数形の代名詞として "they" ("them", +"themself", "their") を使用してもよい。 +.SS "Formatting conventions for manual pages describing commands" +For manual pages that describe a command (typically in Sections 1 and 8), +the arguments are always specified using italics, \fIeven in the SYNOPSIS +section\fP. +.PP +.\" +The name of the command, and its options, should always be formatted in +bold. +.SS "Formatting conventions for manual pages describing functions" +For manual pages that describe functions (typically in Sections 2 and 3), +the arguments are always specified using italics, \fIeven in the SYNOPSIS +section\fP, where the rest of the function is specified in bold: +.PP +\fB int myfunction(int \fP\fIargc\fP\fB, char **\fP\fIargv\fP\fB);\fP +.PP +引き数名といった変数名はイタリック体を指定すべきである。 +.PP +Any reference to the subject of the current manual page should be written +with the name in bold followed by a pair of parentheses in Roman (normal) +font. For example, in the \fBfcntl\fP(2) man page, references to the subject +of the page would be written as: \fBfcntl\fP(). The preferred way to write +this in the source file is: +.PP +.EX + .BR fcntl () +.EE +.PP +.\" +("\efB...\efP()" よりも、この形式を使うこと。 これにより、マニュアルページのソースファイルを解釈するツールを 書くのが簡単になる。) +.SS "Use semantic newlines" +.\" +In the source of a manual page, new sentences should be started on new +lines, and long sentences should split into lines at clause breaks (commas, +semicolons, colons, and so on). This convention, sometimes known as +"semantic newlines", makes it easier to see the effect of patches, which +often operate at the level of individual sentences or sentence clauses. +.SS "Formatting conventions (general)" +Paragraphs should be separated by suitable markers (usually either \fI.PP\fP or +\&\fI.IP\fP). Do \fInot\fP separate paragraphs using blank lines, as this results +in poor rendering in some output formats (such as PostScript and PDF). +.PP +ファイル名 (パス名、またはヘッダーファイルへの参照) は常にイタリック体にする (例: \fI\fP)。 ただし、書式 +(SYNOPSIS) セクションは例外で、 インクルードファイルはボールドにする (例: \fB#include \fP)。 +標準のインクルードヘッダーファイルを参照する際は、 通常の C 言語と同様に山括弧でヘッダーファイルを囲ぬで指定する (例: +\fI\fP)。 +.PP +通常、大文字で表現する特殊マクロはボールドで表す (例えば \fBMAXINT\fP)。 例外として NULL はボールドにしない。 +.PP +エラーコードのリストを列挙する時には、コードはボールドで表す (このリストには通常 \fB\&.TP\fP マクロを用いる)。 +.PP +完全なコマンドは、長い場合には、例に示すように 字下げした行にコマンドだけを記載し、コマンドの前後には空行を置くべきである。 +.PP +.in +4n +.EX +man 7 man\-pages +.EE +.in +.PP +コマンドが短い場合は、 \fIman 7 man\-pages\fP のようにイタリック体で文中に埋め込んで記載してもよい。 +この場合、コマンド内の適切な位置に、改行できないスペース ("\e\ ") を使うとよいかもしれない。 コマンドオプションも (\fI\-l\fP のように) +イタリック体で記載すべきである。 +.PP +式は、専用の字下げした行に記載しない場合、イタリック体を指定すること。 繰り返しになるが、式を通常の文中に埋め込む場合にも、 +改行できないスペースを使うとよいだろう。 +.PP +When showing example shell sessions, user input should be formatted in bold, +for example +.PP +.in +4n +.EX +$ \fBdate\fP +Thu Jul 7 13:01:27 CEST 2016 +.EE +.in +.PP +別のマニュアルページへの参照は、ボールドで名前を記載し、 それに続けてセクション番号を「必ず」書く。セクション番号は ローマンフォント +(通常のフォント) で書き、スペースは入れない (例: \fBintro\fP(2))。 マニュアルページのソースファイルには次のように記載するのが望ましい: +.PP +.EX + .BR intro (2) +.EE +.PP +(相互参照にセクション番号を含めておくと、 \fBman2html\fP といったツールがページ間のハイパーリンクを適切に生成できる。) +.PP +Control characters should be written in bold face, with no quotes; for +example, \fB\(haX\fP. +.SS "綴り (spelling)" +リリース 2.59 からだが、 \fIman\-pages\fP はアメリカ英語の綴りの慣習に従っている +(以前はイギリス英語とアメリカ英語が基準もなく混在して使われていた)。 新しいページやパッチは全てこの慣習に従って下さい。 +.PP +よく知られた綴りの違い以外に、微妙な違いもいくつか見られる。 +.IP * 3 +アメリカ英語では "backward", "upward", "toward" を使う傾向にあるが、イギリス英語では "backwards", +"upwards", "towards" などを使う方が多い。 +.SS "BSD バージョン番号" +BSD バージョン番号の伝統的な表記方法は \fIx.yBSD\fP である (\fIx.y\fP はバージョン番号; 例: 4.2BSD)。 \fIBSD 4.3\fP +といった表記は避けること。 +.SS 大文字表記 +サブセクション ("SS") 見出しでは、最初の単語だけ先頭文字を大文字にし、残りの単語は小文字にすること。但し、英語の用法 (例えば、固有名詞) +やプログラミング言語の要件 (例えば、識別子の名前) などで別の表記をする場合はこの限りではない。 +.PP +.EX + .SS Unicode under Linux +.EE +.\" +.SS 構造体の定義、シェルのセッションログなどの字下げ、など +When structure definitions, shell session logs, and so on are included in +running text, indent them by 4 spaces (i.e., a block enclosed by \fI.in\ +4n\fP +and \fI.in\fP), format them using the \fI.EX\fP and \fIEE\fP macros, and surround +them with suitable paragraph markers (either \fI.PP\fP or \fI.IP\fP). For +example: +.PP +.in +4n +.EX + .PP + .in +4n + .EX + int + main(int argc, char *argv[]) + { + return 0; + } + .EE + .in + .PP +.EE +.in +.SS 推奨用語 +以下の表にマニュアルページでの使用が推奨される用語を示す。これらは主にマニュアルページ間での一貫性を保つためである。 +.TS +l l l +--- +l l l. +用語 使用を避ける単語 備考 + +bit mask bitmask +built\-in builtin +Epoch epoch T{ +For the UNIX Epoch (00:00:00, 1 Jan 1970 UTC) +T} +filename file name +filesystem file system +hostname host name +inode i\-node +lowercase lower case, lower\-case +nonzero non\-zero +pathname path name +pseudoterminal pseudo\-terminal +privileged port T{ +reserved port, +system port +T} +real\-time T{ +realtime, +real time +T} +run time runtime +saved set\-group\-ID T{ +saved group ID, +saved set\-GID +T} +saved set\-user\-ID T{ +saved user ID, +saved set\-UID +T} +set\-group\-ID set\-GID, setgid +set\-user\-ID set\-UID, setuid +superuser T{ +super user, +super\-user +T} +superblock T{ +super block, +super\-block +T} +timestamp time stamp +timezone time zone +uppercase upper case, upper\-case +usable useable +user space userspace +username user name +x86\-64 x86_64 T{ +Except if referring to result of "uname\ \-m" or similar +T} +zeros zeroes +.TE +.PP +以下の\fI修飾子としての複合語におけるハイフン\fPの議論も参照。 +.SS 使用を避ける用語 +以下の表にマニュアルページでの使用を避けるべき用語を示す。 推奨される表現も合わせて記載している。 +これらは主にマニュアルページ間での一貫性を保つためである。 +.TS +l l l +--- +l l l. +使用を避ける 使用を推奨 備考 + +32bit 32\-bit T{ +8\-bit, 16\-bit なども同様 +T} +current process calling process T{ +カーネルプログラマーがマニュアルページを書く際によくする間違い +T} +manpage T{ +man page, manual page +T} +minus infinity negative infinity +non\-root unprivileged user +non\-superuser unprivileged user +nonprivileged unprivileged +OS operating system +plus infinity positive infinity +pty pseudoterminal +tty terminal +Unices UNIX systems +Unixes UNIX systems +.TE +.SS 商標 +商標については正しい綴りと大文字小文字を使うこと。以下は時々綴りの間違いがある商標の正しい綴りのリストである。 +.PP + DG/UX + HP\-UX + UNIX + UnixWare +.SS "NULL, NUL, ヌルポインター、ヌル文字" +\fInull pointer\fP (\fIヌルポインター\fP) は何もないものを指すポインターで、通常は定数 \fINULL\fP で示される。 一方、 +\fINUL\fP は \fInull byte\fP (\fIヌルバイト\fP、値 0 のバイト) で、 C では文字定数 \fI\(aq\e0\(aq\fP と表現される。 +.PP +ポインターとして推奨される用語は "null pointer" (ヌルポインター) もしくは単に "NULL" である。 "NULL pointer" +と記載するのは避けること。 +.PP +バイトとして推奨される用語は "null byte" (ヌルバイト) である。 "NUL" と記載するのは避けること。 "NUL" は "NULL" +と間違われることが非常に多いからである。 また、 "zero byte" (ゼロバイト) と "null character" (ヌル文字) +も避けること。 C の文字列を終端するバイトは "the terminating null byte" (終端ヌルバイト)、 +文字列の説明として使う場合には "null\-terminated" (ヌル終端された) と記載すべきである。 "NUL\-terminated" +の使用は避けること。 +.SS ハイパーリンク +ハイパーリンクについては、 \fI.UR\fP/\fI.UE\fP マクロの組を使うこと (\fBgroff_man\fP(7) +参照)。ページを以下のようにレンダリングする場合に、このマクロはウェブブラウザーで使用できる正しいハイパーリンクを生成してくれる。 +.PP + BROWSER=firefox man \-H pagename +.SS "e.g., i.e., etc., a.k.a. などの使用" +In general, the use of abbreviations such as "e.g.", "i.e.", "etc.", "cf.", +and "a.k.a." should be avoided, in favor of suitable full wordings ("for +example", "that is", "and so on", "compare to", "also known as"). +.PP +これらの省略形の使用が認められる唯一の場所は、 \fI短い\fP括弧で囲まれた余談 ("(e.g., like this one)") の場合である。 +.PP +ここで記載しているように、これらの省略形では必ずピリオドを入れること。 また、"e.g." と "i.e." では常に後にカンマも付けること。 +.SS "em によるダッシュ" +*roff で em によるダッシュ\(emこの部分の両端にある記号\(emを書くには "\e(em" を使う。 (ASCII 端末では em +によるダッシュは通常ハイフン 2 つとして表示されるが、別の活版印刷の場合などでは長いダッシュとして表示されることもある。) em +によるダッシュの両側にはスペースを\fI置かないこと\fP。 +.SS 修飾子としての複合語におけるハイフン +何かを修飾する際 (すなわち後続の名詞を限定する場合) 複合語にはハイフンを入れること。いくつか例を挙げる。 +.PP + 32\-bit value (32 ビット値) + command\-line argument (コマンドライン引き数) + floating\-point number (浮動小数点数) + run\-time check (実行時チェック) + user\-space function (ユーザー空間関数) + wide\-character string (ワイド文字の文字列) +.SS "multi, non, pre, re, sub などとの組み合わせでのハイフン" +一般的に最近の英語の傾向では、"multi", "non", "pre", "re", "sub" などの接尾辞の後ろにはハイフンを付けない。 +これらの接尾辞が単純な接尾語との普通の英語の組み合わせの場合には、 マニュアルページでは基本的にこのルールに従う。 +以下のリストに推奨される形式での例をいくつか挙げる。 +.PP + interprocess + multithreaded + multiprocess + nonblocking + nondefault + nonempty + noninteractive + nonnegative + nonportable + nonzero + preallocated + precreate + prerecorded + reestablished + reinitialize + rearm + reread + subcomponent + subdirectory + subsystem +.PP +接尾語が通常の英単語以外 (商標、固有名詞、頭字語、複合語) と組み合わされる場合は、ハイフンを使うこと。以下に例を挙げる。 +.PP + non\-ASCII + non\-English + non\-NULL + non\-real\-time +.PP +.\" +最後に、"re\-create" と "recreate" は異なる別の動詞である点に注意すること。たいていの場合、使おうと思っているのは前者であろう。 +.SS "Generating optimal glyphs" +Where a real minus character is required (e.g., for numbers such as \-1, for +man page cross references such as \fButf\-8\fP(7), or when writing options that +have a leading dash, such as in \fIls\ \-l\fP), use the following form in the +man page source: +.PP + \e\- +.PP +このガイドラインはサンプルコードの場合にも適用される。 +.PP +To produce unslanted single quotes that render well in ASCII, UTF\-8, and +PDF, use "\e(aq" ("apostrophe quote"); for example +.PP + \e(aqC\e(aq +.PP +ここで \fIC\fP が括弧で囲まれる文字である。このガイドラインはサンプルコードの場合にも適用される。 +.PP +Where a proper caret (\(ha) that renders well in both a terminal and PDF is +required, use "\e(ha". This is especially necessary in code samples, to get +a nicely rendered caret when rendering to PDF. +.PP +.\" +Using a naked "\(ti" character results in a poor rendering in PDF. Instead +use "\e(ti". This is especially necessary in code samples, to get a nicely +rendered tilde when rendering to PDF. +.SS サンプルプログラムとシェルのセッション +マニュアルページには、システムコールやライブラリ関数の使い方を示す サンプルプログラムを含めることができる。 その際には、以下の点に留意すべきである。 +.IP * 3 +サンプルプログラムは C で記載すること。 +.IP * +サンプルプログラムは、 インターフェースについて文章で簡単に説明できる以上のことを示す場合にだけ +必要かつ有用である。インターフェースを呼び出す以外に何もしないサンプル プログラムは普通はほとんど役に立たない。 +.IP * +Example programs should ideally be short (e.g., a good example can often be +provided in less than 100 lines of code), though in some cases longer +programs may be necessary to properly illustrate the use of an API. +.IP * +Expressive code and useful comments are appreciated. +.IP * +サンプルプログラムでは、システムコールやライブラリ関数を呼び出した後で エラーチェックを行うこと。 +.IP * +サンプルプログラムは完結していて、 \fIcc\ \-Wall\fP でコンパイルした際に警告なしでコンパイルできること。 +.IP * +可能かつ適切な場合には、サンプルプログラムで 入力により動作を変化させるなどの実験を行うとよい +(理想的には、コマンドライン引き数や、プログラムが読み込む入力データ 経由で、動作を変化させるのがよい)。 +.IP * +Example programs should be laid out according to Kernighan and Ritchie +style, with 4\-space indents. (Avoid the use of TAB characters in source +code!) The following command can be used to format your source code to +something close to the preferred style: +.IP + indent \-npro \-kr \-i4 \-ts4 \-sob \-l72 \-ss \-nut \-psl prog.c +.IP * +一貫性を保つため、すべてのサンプルプログラムは以下のいずれかで終了すること。 +.IP + exit(EXIT_SUCCESS); + exit(EXIT_FAILURE); +.IP +プログラムを終了するのに以下を使うのは避けること。 +.IP + exit(0); + exit(1); + return n; +.IP * +プログラムソースの前に説明文がある場合は、\fIプログラムソース\fPの見出しをソースコードの前に付けること。 +.IP +\&.SS プログラムのソース +.IP +説明文がシェルセッションのログを含む場合は必ずこのようにすること。 +.PP +プログラムの使い方や他のシステムの特徴を示すためにシェルのセッションログを含める場合、 +.IP * 3 +セッションログをソースコードの前に置くこと +.IP * +セッションログをスペース 4 つで字下げすること +.IP * +ユーザーの入力文をボールドにして、システムが生成する出力と区別できるようにすること +.PP +サンプルプログラムがどんな風になっていればよいかの例については、 \fBwait\fP(2) と \fBpipe\fP(2) を参照すること。 +.SH 例 +\fIman\-pages\fP パッケージに含まれるマニュアルページの体裁の標準的な例については、 \fBpipe\fP(2) と \fBfcntl\fP(2) +を参照すること。 +.SH 関連項目 +\fBman\fP(1), \fBman2html\fP(1), \fBattributes\fP(7), \fBgroff\fP(7), \fBgroff_man\fP(7), +\fBman\fP(7), \fBmdoc\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は +\%https://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/manual/LDP_man-pages/draft/man7/standards.7 b/manual/LDP_man-pages/draft/man7/standards.7 new file mode 100644 index 00000000..7ea957e6 --- /dev/null +++ b/manual/LDP_man-pages/draft/man7/standards.7 @@ -0,0 +1,255 @@ +.\" Copyright (c) 2006, Michael Kerrisk +.\" +.\" %%%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 +.\" the License, or (at your option) any later version. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" 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, see +.\" . +.\" %%%LICENSE_END +.\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.\" +.\" Japanese Version Copyright (c) 2006 Akihiro MOTOKI all rights reserved. +.\" Translated 2006-08-12, Akihiro MOTOKI , LDP v2.39 +.\" Updated 2008-08-07, Akihiro MOTOKI, LDP v3.05 +.\" Updated 2008-08-20, Akihiro MOTOKI, LDP v3.07 +.\" +.TH STANDARDS 7 2020\-11\-01 Linux "Linux Programmer's Manual" +.SH 名前 +standards \- C と UNIX の標準規格 +.SH 説明 +多くのマニュアルページの「準拠 (CONFORMING TO)」の章は、 そのページに記載されたインターフェースが準拠する +各種の標準規格を示すものである。 以下にこれらの標準規格の簡単な説明を記す。 +.TP +\fBV7\fP +バージョン 7 (第 7 版とも呼ばれる) UNIX。 1979 年に AT&T/Bell Labs によりリリースされた。 この時点以降、 UNIX +システムは BSD と System V の二つの系譜に分かれた。 +.TP +\fB4.2BSD\fP +カリフォルニア大バークレー校 (the University of California at Berkeley) によりリリースされた +\fIBerkeley Software Distribution\fP リリース 4.2 によって規定された、実装に基づく標準規格 +(implementation standard)。 バークレーによるリリースの中で TCP/IP スタックとソケット API +を含む最初のリリースである。 +.IP +これより前のBSD の主なリリースとしては \fI3BSD\fP (1980), \fI4BSD\fP (1980), \fI4.1BSD\fP (1981) がある。 +.TP +\fB4.3BSD\fP +1986 年にリリースされた 4.2BSD の後継。 +.TP +\fB4.4BSD\fP +1993 年にリリースされた 4.3BSD の後継。 バークレー (Berkeley) による最後の大きなリリースである。 +.TP +\fBSystem V\fP +AT&T の商用 System V (5) リリースの 1983 年版により規定された 実装に基づく標準規格。 一つ前の AT&T の大きなリリースは +1981 年にリリースされた \fISystem III\fP である。 +.TP +\fBSystem V release 2 (SVr2)\fP +System V の二番目のリリースであり、1985 年に作成された。 SVr2 は正式には 1985 年に発行された \fISystem V +Interface Definition version 1\fP (\fISVID 1\fP) に記載されている。 +.TP +\fBSystem V release 3 (SVr3)\fP +SVr2 の後継。1986 年にリリースされた。 このリリースは正式には \fISystem V Interface Definition version +2\fP (\fISVID 2\fP) に記載されている。 +.TP +\fBSystem V release 4 (SVr4)\fP +SVr3 の後継。1989 年にリリースされた。 このバージョンの System V については "Programmer's Reference +Manual: Operating System API (Intel processors)" (Prentice\-Hall 1992, ISBN +0\-13\-951294\-2) に記載されている。 このリリースは正式には \fISystem V Interface Definition version +3\fP (\fISVID 3\fP) に記載されており、System V の最終的なリリースと考えられている。 +.TP +\fBSVID 4\fP +System V Interface Definition version 4。 1995 年に発行された。 インターネットでは +.UR http://www.sco.com\:/developers\:/devspecs/ +.UE +で入手できる。 +.TP +\fBC89\fP +最初の C 言語の標準規格である。 ANSI (American National Standards Institute) により 1989 +年の承認された (\fIX3.159\-1989\fP)。 時には、この規格は \fIANSI C\fP とも呼ばれるが、 C99 も ANSI +標準なので、この言い方はあいまいである。 この規格は 1990 年に ISO (International Standards +Organization) による 承認も受けており (\fIISO/IEC 9899:1990\fP)、 そのため \fIISO C90\fP +として参照されることもたまにある。 +.TP +\fBC99\fP +C 言語の標準規格のこの改訂版は ISO により 1999 年に承認された (\fIISO/IEC 9899:1999\fP)。 +.UR http://www.open\-std.org\:/jtc1\:/sc22\:/wg14\:/www\:/standards +.UE +からオンラインで入手可能である。 +.TP +\fBC11\fP +C 言語の標準規格のこの改訂版は ISO により 2011 年に承認された (\fIISO/IEC 9899:2011\fP)。 +.UR http://www.open\-std.org\:/jtc1\:/sc22\:/wg14\:/www\:/standards +.UE +からオンラインで入手可能である。 +.IP +\fBLFS\fP The Large File Summit specification, completed in 1996. This +specification defined mechanisms that allowed 32\-bit systems to support the +use of large files (i.e., 64\-bit file offsets). See +.UR https://www.opengroup.org\:/platform\:/lfs.html +.UE . +.TP +\fBPOSIX.1\-1988\fP +This was the first POSIX standard, ratified by IEEE as IEEE Std 1003.1\-1988, +and subsequently adopted (with minor revisions) as an ISO standard in 1990. +The term "POSIX" was coined by Richard Stallman. +.TP +\fBPOSIX.1\-1990\fP +"Portable Operating System Interface for Computing Environments". IEEE +1003.1\-1990 part 1, ratified by ISO in 1990 (\fIISO/IEC 9945\-1:1990\fP). +.TP +\fBPOSIX.2\fP +IEEE Std 1003.2\-1992. コマンドとユーティリティについて説明が書かれており、 1993 年に ISO により承認された +(\fIISO/IEC 9945\-2:1993\fP)。 +.TP +\fBPOSIX.1b\fP (以前は \fIPOSIX.4\fP とも言われた) +IEEE Std 1003.1b\-1993. 移植可能なオペレーティングシステムのためのリアルタイム機能について 記載されており、 1996 年の +ISO により承認された (\fIISO/IEC 9945\-1:1996\fP)。 +.TP +\fBPOSIX.1c (formerly known as \fP\fIPOSIX.4a\fP\fB)\fP +IEEE Std 1003.1c\-1995. POSIX スレッドインターフェースについて記載している。 +.TP +\fBPOSIX.1d\fP +IEEE Std 1003.1c\-1999. 追加のリアルタイム拡張について記載している。 +.TP +\fBPOSIX.1g\fP +IEEE Std 1003.1g\-2000. (ソケットを含めた) ネットワーク API について記載している。 +.TP +\fBPOSIX.1j\fP +IEEE Std 1003.1j\-2000. 高度なリアルタイム拡張について記載している。 +.TP +\fBPOSIX.1\-1996\fP +POSIX.1 の 1996 年の改訂版。 POSIX.1b と POSIX.1c を取り込んでいる。 +.TP +\fBXPG3\fP +Released in 1989, this was the first release of the X/Open Portability Guide +to be based on a POSIX standard (POSIX.1\-1988). This multivolume guide was +developed by the X/Open Group, a multivendor consortium. +.TP +\fBXPG4\fP +A revision of the X/Open Portability Guide, released in 1992. This revision +incorporated POSIX.2. +.TP +\fBXPG4v2\fP +XPG4 の 1994年改訂版。 \fISpec 1170\fP とも呼ばれる。 1170 +とはこの標準規格が定義しているインターフェースの数を表すものである。 +.TP +\fBSUS (SUSv1)\fP +Single UNIX Specification. この規格は、XPG4v2 やその他の X/Open による標準規格 (X/Open Curses +Issue 4 version 2, X/Open Networking Service (XNS) Issue 4) を再構成したものである。 +この規格に準拠するシステムは \fIUNIX 95\fP を名乗ることができる。 +.TP +\fBSUSv2\fP +Single UNIX Specification version 2. (正しくないが) \fIXPG5\fP と呼ばれることもある。 この規格は 1997 +年に登場した。 この規格に準拠するシステムは \fIUNIX 98\fP を名乗ることができる。 +.UR http://www.unix.org\:/version2/ +.UE +も参照のこと。 +.TP +\fBPOSIX.1\-2001, SUSv3\fP +This was a 2001 revision and consolidation of the POSIX.1, POSIX.2, and SUS +standards into a single document, conducted under the auspices of the Austin +Group +.UR http://www.opengroup.org\:/austin/ +.UE . +The standard is +available online at +.UR http://www.unix.org\:/version3/ +.UE . +.IP +The standard defines two levels of conformance: \fIPOSIX conformance\fP, which +is a baseline set of interfaces required of a conforming system; and \fIXSI +Conformance\fP, which additionally mandates a set of interfaces (the "XSI +extension") which are only optional for POSIX conformance. XSI\-conformant +systems can be branded \fIUNIX 03\fP. +.IP +POSIX.1\-2001 文書は 4つの部分に分けることができる: +.IP +\fBXBD\fP: 定義、用語と概念、ヘッダーファイルの仕様。 +.IP +\fBXSH\fP: 関数の仕様 (関数とは、実際の実装でのシステムコールと ライブラリ関数のことである)。 +.IP +\fBXCU\fP: コマンドとユーティリティの仕様 (以前、 POSIX.2 に記載されていた内容)。 +.IP +\fBXRAT\fP: 参考情報と規格のそれ以外の部分 +.IP +POSIX.1\-2001 は C99 と整合がとられており、 C99 で標準化されたライブラリ関数は POSIX.1\-2001 でも 標準化されている。 +.IP +The Single UNIX Specification version 3 (SUSv3) comprises the Base +Specifications containing XBD, XSH, XCU, and XRAT as above, plus X/Open +Curses Issue 4 version 2 as an extra volume that is not in POSIX.1\-2001. +.IP +Two Technical Corrigenda (minor fixes and improvements) of the original +2001 standard have occurred: TC1 in 2003 and TC2 in 2004. +.TP +\fBPOSIX.1\-2008, SUSv4\fP +POSIX.1/SUS の次の改訂版に関する作業は 2008 年に完了し承認された。この標準は +.UR http://www.unix.org\:/version4/ +.UE . +からオンラインで入手できる。 +.IP +この改訂版での変更は POSIX.1\-2001/SUSv3 で行われた変更ほど大きくないが、 +多くの新しいインターフェイスが追加され、既存の仕様に関しても 種々の詳細が変更されている。 POSIX.1\-2001 では任意 (optional) +とされていたインターフェイスの多くが 2008 年版の標準では必須 (mandatory) になる。 POSIX.1\-2001 +に存在するインターフェイスのいくつかは、 POSIX.1\-2008 では廃止予定の印が付けられたり、 標準から完全に削除されたりしている。 +.IP +The revised standard is structured in the same way as its predecessor. The +Single UNIX Specification version 4 (SUSv4) comprises the Base +Specifications containing XBD, XSH, XCU, and XRAT, plus X/Open Curses Issue +7 as an extra volume that is not in POSIX.1\-2008. +.IP +Again there are two levels of conformance: the baseline \fIPOSIX +Conformance\fP, and \fIXSI Conformance\fP, which mandates an additional set of +interfaces beyond those in the base specification. +.IP +一般には、マニュアルページの「準拠」の章のリストに POSIX.1\-2001 が あれば、他に注意書きがなければ、そのインターフェイスは +POSIX.1\-2008 にも準拠していると考えてよい。 +.IP +この標準の Technical Corrigendum 1 (正誤表 1; 細かな修正と改良) が 2013 年にリリースされた。 +.IP +この標準の Technical Corrigendum 2 (正誤表 2) が 2016 年にリリースされた。 +.IP +詳しい情報は Austin Group のウェブサイト +.UR http://www.opengroup.org\:/austin/ +.UE +に載っている。 +.TP +\fBSUSv4 2016 edition\fP +This is equivalent to POSIX.1\-2008, with the addition of Technical +Corrigenda 1 and 2 and the XCurses specification. +.TP +\fBPOSIX.1\-2017\fP +This revision of POSIX is technically identical to POSIX.1\-2008 with +Technical Corrigenda 1 and 2 applied. +.TP +\fBSUSv4 2018 edition\fP +This is equivalent to POSIX.1\-2017, with the addition of the XCurses +specification. +.PP +The interfaces documented in POSIX.1/SUS are available as manual pages under +sections 0p (header files), 1p (commands), and 3p (functions); thus one can +write "man 3p open". +.SH 関連項目 +\fBgetconf\fP(1), \fBconfstr\fP(3), \fBpathconf\fP(3), \fBsysconf\fP(3), +\fBattributes\fP(7), \fBfeature_test_macros\fP(7), \fBlibc\fP(7), \fBposixoptions\fP(7), +\fBsystem_data_types\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は +\%https://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/manual/LDP_man-pages/draft/man7/suffixes.7 b/manual/LDP_man-pages/draft/man7/suffixes.7 index c2791455..15af5a92 100644 --- a/manual/LDP_man-pages/draft/man7/suffixes.7 +++ b/manual/LDP_man-pages/draft/man7/suffixes.7 @@ -60,11 +60,9 @@ .SH 名前 suffixes \- ファイルの接尾辞 (suffix) のリスト .SH 説明 -It is customary to indicate the contents of a file with the file suffix, -which (typically) consists of a period, followed by one or more letters. -Many standard utilities, such as compilers, use this to recognize the type -of file they are dealing with. The \fBmake\fP(1) utility is driven by rules -based on file suffix. +習慣的にファイルの接尾 (suffix) はファイルの内容を示している。 この接尾は (典型的には) ピリオド (.) +とそれに続く一つ以上の文字からなっている。 コンパイラーのような、多くの標準的なユーティリティは、 この接尾を使用して取り扱うファイルの型を理解する。 +\fBmake\fP(1) ユーティリティはファイルの接尾に基づいたルールに従って動作する。 .PP 以下は Linux システムでよく見られる接尾のリストである。 .PP diff --git a/manual/LDP_man-pages/draft/man7/units.7 b/manual/LDP_man-pages/draft/man7/units.7 index 78e15cfd..f26066ec 100644 --- a/manual/LDP_man-pages/draft/man7/units.7 +++ b/manual/LDP_man-pages/draft/man7/units.7 @@ -33,7 +33,7 @@ .\" .TH UNITS 7 2020\-08\-13 Linux "Linux Programmer's Manual" .SH 名前 -units \- decimal and binary prefixes +units \- 10 進および 2 進の接頭語 .SH 説明 .SS "10 進の接頭語" SI 単位系では 10 の累乗を示す接頭語を用いる。 キロメートルは 1000 メートル、メガワットは 1000000 ワットである。 @@ -96,22 +96,17 @@ Ei エクシビ(exbi) 2^60 = 1152921504606846976 これらの 2 進の接頭語が導入される前は、 k=1000 と K=1024 のように使うのが割に良く知られた習慣だった (b=ビット、B=バイト の関係に似ている)。 残念ながら M は最初から大文字なので、 2 進であることを示すためにさらに大文字にすることはできなかった。 .PP -At first that didn't matter too much, since memory modules and disks came in -sizes that were powers of two, so everyone knew that in such contexts -"kilobyte" and "megabyte" meant 1024 and 1048576 bytes, respectively. What -originally was a sloppy use of the prefixes "kilo" and "mega" started to -become regarded as the "real true meaning" when computers were involved. -But then disk technology changed, and disk sizes became arbitrary numbers. -After a period of uncertainty all disk manufacturers settled on the -standard, namely k=1000, M=1000\ k, G=1000\ M. +当初はこのことはあまり大きな問題ではなかった。 なぜならメモリーモジュールやディスクは 2 の累乗になるものだったので、 +皆そのようなところでは「キロバイト」を 1024 バイト、 「メガバイト」を 1048576 バイトであるとみなしていたからである。 +最初は接頭語の「キロ」とか「メガ」を曖昧に援用していたのだが、 そのうちコンピュータに関連する話題では、こちらが「実際の意味」になっていった。 +しかしその後ディスクのテクノロジーが代わり、 ディスクサイズは任意の数値をとるようになった。 どっちつかずの時期がしばらく続いたあと、 +ディスクのメーカーすべてが、標準を使うことに合意した。 すなわち k=1000, M=1000\ k, G=1000\ M である。 .PP .\" also common: 14.4k modem -The situation was messy: in the 14k4 modems, k=1000; in the 1.44\ MB -diskettes, M=1024000; and so on. In 1998 the IEC approved the standard that -defines the binary prefixes given above, enabling people to be precise and -unambiguous. +状況はひどくなった。14.4k モデムでは k=1000, 1.44\ MB フロッピーでは M=1024000 になった。 1998 年に、IEC +は上記のような 2 進用の接頭語を承認し、 これによって両者をはっきり区別することが可能になった。 .PP -Thus, today, MB = 1000000\ B and MiB = 1048576\ B. +したがって今日では、MB=1000000\ B で、MiB = 1048576\ B なのである。 .PP フリーソフトウェアの世界でも、 プログラムたちはゆっくりとこれらに準拠してきている。 Linux カーネルは、ブートすると次のようなメッセージを出す。 .PP diff --git a/manual/LDP_man-pages/draft/man8/intro.8 b/manual/LDP_man-pages/draft/man8/intro.8 index 0d859d60..ad278467 100644 --- a/manual/LDP_man-pages/draft/man8/intro.8 +++ b/manual/LDP_man-pages/draft/man8/intro.8 @@ -44,9 +44,8 @@ intro \- 管理コマンドと特権コマンドの説明 マニュアルの 8 章は、システム管理用のコマンド、デーモン (daemon)、 ハードウェア関連のコマンドといった、スーパーユーザーによってのみ 使用される/できるコマンドについて説明している。 .PP -As with the commands described in Section 1, the commands described in this -section terminate with an exit status that indicates whether the command -succeeded or failed. See \fBintro\fP(1) for more information. +1 章で説明されているコマンドと同様、この章で説明されるコマンドは コマンドの成功・失敗を示す終了ステータスで終了する。 さらなる情報は +\fBintro\fP(1) を参照のこと。 .SH 注意 .SS 著者と著作権 著者と著作権に関しては各マニュアルページのソースのヘッダーを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。