From c800968123c1f3d1053d2bccf84d6478601ba9c4 Mon Sep 17 00:00:00 2001 From: Akihiro MOTOKI Date: Mon, 12 Jan 2015 02:02:09 +0900 Subject: [PATCH] Release some pages --- release/man1/memusage.1 | 199 +++++++++++++++++++ release/man1/memusagestat.1 | 79 ++++++++ release/man1/mtrace.1 | 53 +++++ release/man1/pldd.1 | 84 ++++++++ release/man3/getaddrinfo.3 | 8 +- release/man3/getaddrinfo_a.3 | 459 +++++++++++++++++++++++++++++++++++++++++++ release/man3/getnameinfo.3 | 4 +- release/man3/getnetent.3 | 4 +- release/man3/getservent.3 | 2 +- release/man3/inet.3 | 6 +- release/man3/inet_net_pton.3 | 263 +++++++++++++++++++++++++ release/man3/resolver.3 | 9 +- release/man3/setnetgrent.3 | 2 +- release/man4/random.4 | 18 +- release/man5/hosts.5 | 7 +- release/man5/nscd.conf.5 | 2 +- release/man5/nss.5 | 77 ++++++++ release/man7/arp.7 | 8 +- release/man7/ddp.7 | 4 +- release/man7/hostname.7 | 2 +- release/man7/icmp.7 | 8 +- release/man7/ip.7 | 2 +- release/man7/tcp.7 | 7 +- release/man7/unix.7 | 6 +- translation_list | 22 +-- 25 files changed, 1273 insertions(+), 62 deletions(-) create mode 100644 release/man1/memusage.1 create mode 100644 release/man1/memusagestat.1 create mode 100644 release/man1/mtrace.1 create mode 100644 release/man1/pldd.1 create mode 100644 release/man3/getaddrinfo_a.3 create mode 100644 release/man3/inet_net_pton.3 create mode 100644 release/man5/nss.5 diff --git a/release/man1/memusage.1 b/release/man1/memusage.1 new file mode 100644 index 00000000..b15e5b15 --- /dev/null +++ b/release/man1/memusage.1 @@ -0,0 +1,199 @@ +.\" Copyright (c) 2013, Peter Schiffer +.\" and Copyright (C) 2014, 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. +.\" +.\"******************************************************************* +.TH MEMUSAGE 1 2014\-09\-06 GNU "Linux user manual" +.SH 名前 +memusage \- プログラムのメモリー使用量のプロファイルを行う +.SH 書式 +\fBmemusage\fP [\fIoption\fP]... \fIprogram\fP [\fIprogramoption\fP]... +.SH 説明 +\fBmemusage\fP は、 プログラム \fIprogram\fP のメモリー使用量のプロファイルを行う bash スクリプトである。 呼び出し元の環境に +(\fBLD_PRELOAD\fP 環境変数を使って) \fBlibmemusage.so\fP ライブラリをプレロードする。 \fBld.so\fP(8) を参照。 +\fBlibmemusage.so\fP ライブラリは、 \fBmalloc\fP(3), \fBcalloc\fP(3), \fBfree\fP(3), +\fBrealloc\fP(3) の呼び出しを横取りし、 メモリー割り当て状況の追跡を行う。 追加で、 \fBmmap\fP(2), \fBmremap\fP(2), +\fBmunmap\fP(2) を追跡することもできる。 +.PP +\fBmemusage\fP は収集したデータをテキスト形式で出力することもできるし、 \fBmemusagestat\fP(1) +を使って収集したデータをグラフにした PNG ファイルを作成することもできる (以下の \fB\-p\fP オプションを参照)。 +.SS メモリー使用量概要 +\fBmemusage\fP が出力する "Memory usage summary" (メモリー使用量概要) の行には以下のフィールドが含まれる。 +.RS 4 +.TP +\fBheap total\fP +\fBmalloc\fP(3) のすべての呼び出しの \fIsize\fP 引き数の合計、 \fBcalloc\fP(3) のすべての呼び出しの引き数の積 +(\fInmemb\fP*\fIsize\fP)、 \fBmmap\fP(2) のすべての呼び出しの \fIlength\fP 引き数の合計。 \fBrealloc\fP(3) と +\fBmremap\fP(2) の場合、 割り当ての新しいサイズが以前のサイズよりも大きい場合、 差分 (新しいサイズから古いサイズを引いた値) +の合計が加算される。 +.TP +\fBheap peak\fP +\fBmalloc\fP(3) の \fIsize\fP 引き数、 \fBcalloc\fP(3) の \fInmemb\fP*\fIsize\fP の積、 +\fBrealloc\fP(3) の \fIsize\fP 引き数、 \fBmmap\fP(2) の \fIlength\fP 引き数、 \fBmremap\fP(2) の +\fInew_size\fP 引き数、 の中の最大値。 +.TP +\fBstack peak\fP +監視される関数の最初の呼び出しが行われる前に、 スタックポインターアドレス (ベーススタックポインター) が保存される。 +関数のそれぞれの呼び出し後には、 実際のスタックポインターアドレスを読み込み、 +ベースポインターアドレスを元に差分を計算する。これらの差分の最大値がスタックのピーク値となる。 +.RE +.PP +この概要行の直後には、 監視対象の各関数の呼び出し回数、 割り当て・割り当て解除された全メモリー量、 失敗した回数がテーブルで表示される。 +\fBrealloc\fP(3) と \fBmremap\fP(2) の場合には、 フィールド "nomove" でブロックアドレスを変更した再割り当て数を、 +フィールド "dec" でブロックサイズが減少した再割り当て数が追加で表示される。 \fBrealloc\fP(3) の場合、 フィールド "free" +でブロックの解放が行われた再割り当て (サイズが 0 の再割り当て) の数も追加で表示される。 + + +\fBmemusage\fP が出力するテーブルの "realloc/total memory" (再割り当てメモリー/全メモリー) には、 +\fBrealloc\fP(3) を使ってメモリーブロックをその前よりも小さいサイズに再割り当てされた場合は含まれない。 このため、 ("free" 以外の) +すべての「総メモリー」のセルは "free/total memory" セルよりも大きくなることがある。 +.SS ブロックサイズのヒストグラム +"Histogram for block sizes" (ブロックサイズのヒストグラム) は、 +メモリー割り当てをバケットサイズ単位に分割した情報である。 +.SH オプション +.TP +\fB\-n\ \fP\fIname\fP,\ \fB\-\-progname=\fP\fIname\fP +プロファイル対象のプログラムファイル名。 +.TP +\fB\-p\ \fP\fIfile\fP,\ \fB\-\-png=\fP\fIfile\fP +PNG 画像を生成し、 \fIfile\fP に格納する。 +.TP +\fB\-d\ \fP\fIfile\fP,\ \fB\-\-data=\fP\fIfile\fP +バイナリーデータファイルを生成し、 \fIfile\fP に格納する。 +.TP +\fB\-u\fP,\ \fB\-\-unbuffered\fP +出力バッファリングを行わない。 +.TP +\fB\-b\ \fP\fIsize\fP,\ \fB\-\-buffer=\fP\fIsize\fP +出力する前に \fIsize\fP 個のエントリーの収集を行う。 +.TP +\fB\-\-no\-timer\fP +スタックポインター値の時間ベースのサンプリング (\fBSIGPROF\fP) を無効にする。 +.TP +\fB\-m\fP,\ \fB\-\-mmap\fP +\fBmmap\fP(2), \fBmremap\fP(2), \fBmmap\fP(2) も追跡対象とする。 +.TP +\fB\-?\fP,\ \fB\-\-help\fP +ヘルプを表示し、終了する。 +.TP +\fB\-\-usage\fP +簡潔な使用方法を表示して終了する。 +.TP +\fB\-V\fP,\ \fB\-\-version\fP +バージョン情報を表示して終了する。 +.TP +以下のオプションは画像出力を行う場合にのみ適用される。 +.TP +\fB\-t\fP,\ \fB\-\-time\-based\fP +X 軸の目盛として (関数呼び出し数ではなく) 時間を使用する。 +.TP +\fB\-T\fP,\ \fB\-\-total\fP +メモリーの全使用量のグラフも生成する。 +.TP +\fB\-\-title=\fP\fIname\fP +グラフのタイトルとして \fIname\fP を使用する。 +.TP +\fB\-x\ \fP\fIsize\fP,\ \fB\-\-x\-size=\fP\fIsize\fP +グラフの幅を \fIsize\fP ピクセルにする。 +.TP +\fB\-y\ \fP\fIsize\fP,\ \fB\-\-y\-size=\fP\fIsize\fP +グラフの高さを \fIsize\fP ピクセルにする。 +.SH 終了ステータス +終了ステータスはプロファイルしたプログラムの終了ステータスと同じになる。 +.SH 例 +以下の簡単なプログラムは、 ピークに達するまで繰り返しメモリーブロックの再割り当てを行い、 その後ブロックサイズが 0 +になるまで繰り返し順に小さなブロックに再割り当てを行う。 このプログラムをコンパイルして以下のコマンドを実行すると、 +このプログラムのメモリ使用量がファイル \fImemusage.png\fP に出力される。 + +.in +4n +.nf +$ \fBmemusage \-\-data=memusage.dat ./a.out\fP +\&... +Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224 + total calls total memory failed calls + malloc| 1 400 0 +realloc| 40 44800 0 (nomove:40, dec:19, free:0) + calloc| 0 0 0 + free| 1 440 +Histogram for block sizes: + 192\-207 1 2% ================ +\&... + 2192\-2207 1 2% ================ + 2240\-2255 2 4% ================================= + 2832\-2847 2 4% ================================= + 3440\-3455 2 4% ================================= + 4032\-4047 2 4% ================================= + 4640\-4655 2 4% ================================= + 5232\-5247 2 4% ================================= + 5840\-5855 2 4% ================================= + 6432\-6447 1 2% ================ +$ \fBmemusagestat memusage.dat memusage.png\fP +.fi +.in +.SS プログラムのソース +.nf +#include +#include + +#define CYCLES 20 + +int +main(int argc, char *argv[]) +{ + int i, j; + int *p; + + printf("malloc: %zd\en", sizeof(int) * 100); + p = malloc(sizeof(int) * 100); + + for (i = 0; i < CYCLES; i++) { + if (i < CYCLES / 2) + j = i; + else + j\-\-; + + printf("realloc: %zd\en", sizeof(int) * (j * 50 + 110)); + p = realloc(p, sizeof(int) * (j * 50 + 100)); + + printf("realloc: %zd\en", sizeof(int) * ((j+1) * 150 + 110)); + p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110)); + } + + free(p); + exit(EXIT_SUCCESS); +} +.fi +.SH バグ +バグ報告については +.UR http://www.gnu.org/software/libc/bugs.html +.UE +を参照のこと。 +.SH 関連項目 +\fBmemusagestat\fP(1), \fBmtrace\fP(1) \fBld.so\fP(8) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man1/memusagestat.1 b/release/man1/memusagestat.1 new file mode 100644 index 00000000..788163e2 --- /dev/null +++ b/release/man1/memusagestat.1 @@ -0,0 +1,79 @@ +.\" Copyright (c) 2013, Peter Schiffer +.\" +.\" %%%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. +.\" +.\"******************************************************************* +.TH MEMUSAGESTAT 1 2014\-09\-06 GNU "Linux programmer's manual" +.SH 名前 +memusagestat \- メモリーのプロファイリングデータからグラフを出力する +.SH 書式 +\fBmemusagestat\fP [\fIoption\fP]... \fIdatafile\fP [\fIoutfile\fP] +.SH 説明 +\fBmemusagestat\fP は、 ファイル \fIdatafile\fP に格納されたメモリーのプロファイリングデータをグラフとして表現した PNG +ファイルを作成する。 \fIdatafile\fP は \fBmemusage\fP(1) の \fI\-d\fP (\fI\-\-data\fP) オプションで生成される。 + +グラフの赤色の線はヒープ使用量 (割り当てられたメモリー) を示し、 緑色の線はスタック使用量を示す。 X 軸はメモリ処理関数の呼び出し数 (\fI\-t\fP +オプションが指定された場合は時間) である。 +.SH オプション +.TP +\fB\-o\ \fP\fIfile\fP,\ \fB\-\-output=\fP\fIfile\fP +出力ファイルの名前。 +.TP +\fB\-s\ \fP\fIstring\fP,\ \fB\-\-string=\fP\fIstring\fP +出力グラフに表示するタイトルとして \fIstring\fP を使用する。 +.TP +\fB\-t\fP,\ \fB\-\-time\fP +X 軸の目盛として (関数呼び出し数ではなく) 時間を使用する。 +.TP +\fB\-T\fP,\ \fB\-\-total\fP +全メモリー消費量のグラフも出力する。 +.TP +\fB\-x\ \fP\fIsize\fP,\ \fB\-\-x\-size=\fP\fIsize\fP +出力グラフの幅を \fIsize\fP ピクセルにする。 +.TP +\fB\-y\ \fP\fIsize\fP,\ \fB\-\-y\-size=\fP\fIsize\fP +出力グラフの高さを \fIsize\fP ピクセルにする。 +.TP +\fB\-?\fP,\ \fB\-\-help\fP +ヘルプメッセージを表示して終了する。 +.TP +\fB\-\-usage\fP +簡潔な使用方法を表示して終了する。 +.TP +\fB\-V\fP,\ \fB\-\-version\fP +バージョン情報を表示して終了する。 +.SH 例 +\fBmemusage\fP(1) を参照。 +.SH バグ +バグ報告については +.UR http://www.gnu.org/software/libc/bugs.html +.UE +を参照のこと。 +.SH 関連項目 +\fBmemusage\fP(1), \fBmtrace\fP(1) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man1/mtrace.1 b/release/man1/mtrace.1 new file mode 100644 index 00000000..f44e52dd --- /dev/null +++ b/release/man1/mtrace.1 @@ -0,0 +1,53 @@ +.\" Copyright (c) 2013, Peter Schiffer (pschiffe@redhat.com) +.\" +.\" %%%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. +.\" +.\"******************************************************************* +.TH MTRACE 1 2014\-09\-01 GNU "Linux user manual" +.SH 名前 +mtrace \- malloc のトレースログを解釈する +.SH 書式 +\fBmtrace\fP [\fIoption\fP]... [\fIbinary\fP] \fImtracedata\fP +.SH 説明 +\fBmtrace\fP は \fBmtrace\fP(3) の出力内容が入ったファイル \fImtracedata\fP +のトレースログを解釈し人間が読みやすい出力に変換する Perl スクリプトである。 \fIbinary\fP が渡されると、 \fBmtrace\fP +の出力に問題箇所にソースファイル名と行番号も出力される (\fIbinary\fP はデバッグ情報付きでコンパイルされているものとする)。 + +\fBmtrace\fP(3) 関数と \fBmtrace\fP スクリプトの使用方法の詳細は \fBmtrace\fP(3) を参照。 +.SH オプション +.TP +\fB\-\-help\fP +ヘルプを表示し、終了する。 +.TP +\fB\-\-version\fP +バージョン情報を表示して終了する。 +.SH バグ +バグ報告の方法については を参照。 +.SH 関連項目 +\fBmemusage\fP(1), \fBmtrace\fP(3) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man1/pldd.1 b/release/man1/pldd.1 new file mode 100644 index 00000000..f2e40df1 --- /dev/null +++ b/release/man1/pldd.1 @@ -0,0 +1,84 @@ +.\" Copyright (C) 2014 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. +.\" +.\"******************************************************************* +.TH PLDD 1 2014\-09\-27 GNU "Linux User Manual" +.SH 名前 +pldd \- プロセスにリンクされている動的共有オブジェクトを表示する +.SH 書式 +.nf +\fBpldd \fP\fIPID\fP +\fBpldd\fP OPTION +.fi +.SH 説明 +\fBpldd\fP コマンドは、 指定されたプロセス ID のプロセスにリンクされている動的共有オブジェクトのリストを表示する。 このリストには +\fBdlopen\fP(3) を使って動的にロードされたライブラリーも含まれる。 +.SH オプション +.TP +\fB\-?\fP, \fB\-\-help\fP +プログラムのヘルプメッセージを表示する。 +.TP +\fB\-\-usage\fP +簡潔な使用方法を表示する。 +.TP +\fB\-V\fP, \fB\-\-version\fP +プログラムのバージョンを表示する。 +.SH バージョン +\fBpldd\fP は glibc 2.15 以降で利用可能である。 +.SH 準拠 +.\" There are man pages on Solaris and HP-UX. +\fBpldd\fP コマンドは POSIX.1 では規定されていない。 他のいくつかのシステムにも同様のコマンドがある。 +.SH 終了ステータス +成功すると \fBpldd\fP はステータス 0 を返す。 指定されたプロセスが存在しない場合、 +ユーザーが自身の動的共有オブジェクトのリストにアクセスする許可を持っていない場合、 もしくはコマンドライン引き数が指定されていない場合、 \fBpldd\fP +はステータス 1 で終了する。 無効なオプションが指定された場合、 ステータス 64 で終了する。 +.SH 例 +.nf +$ \fBecho $$\fP # シェルの PID を表示する +1143 +$ \fBpldd $$\fP # このシェルにリンクされている動的共有オブジェクトを表示 +1143: /usr/bin/bash +linux\-vdso.so.1 +/lib64/libtinfo.so.5 +/lib64/libdl.so.2 +/lib64/libc.so.6 +/lib64/ld\-linux\-x86\-64.so.2 +/lib64/libnss_files.so.2 +.fi +.SH 注意 +コマンド + + lsof \-p PID + +は、 プロセスにリンクされた動的共有オブジェクトも出力する。 +.SH 関連項目 +\fBldd\fP(1), \fBlsof\fP(1), \fBdlopen\fP(3), \fBld.so\fP(8) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man3/getaddrinfo.3 b/release/man3/getaddrinfo.3 index 6cf62a66..ea5045d7 100644 --- a/release/man3/getaddrinfo.3 +++ b/release/man3/getaddrinfo.3 @@ -150,14 +150,14 @@ IPv6 の場合は \fBinet_pton\fP(3) でサポートされている 16 進数 .PP \fIhints.ai_flags\fP に \fBAI_PASSIVE\fP フラグが指定され、かつ \fInode\fP が NULL の場合、 返されるソケットアドレスは コネクションを \fBaccept\fP(2) するためのソケットを \fBbind\fP(2) するのに適したものとなる。 -返されるソケットアドレスには「ワイルドカード・アドレス」 (IPv4 アドレスの場合は \fBINADDR_ANY\fP、 IPv6 アドレスの場合は -\fBIN6ADDR_ANY_INIT\fP) が入る。 ワイルドカード・アドレスは、任意のホストのネットワークアドレスで接続を +返されるソケットアドレスには「ワイルドカードアドレス」 (IPv4 アドレスの場合は \fBINADDR_ANY\fP、 IPv6 アドレスの場合は +\fBIN6ADDR_ANY_INIT\fP) が入る。 ワイルドカードアドレスは、任意のホストのネットワークアドレスで接続を 受け付けようとするアプリケーション (通常はサーバー) で用いられる。 \fInode\fP が NULL でない場合、 \fBAI_PASSIVE\fP フラグは無視される。 .PP \fIhints.ai_flags\fP に \fBAI_PASSIVE\fP フラグがセットされていない場合、 返されるソケットアドレスは \fBconnect\fP(2), \fBsendto\fP(2), \fBsendmsg\fP(2) での使用に適したものとなる。 \fInode\fP が NULL -の場合、ネットワークアドレスにはループバック・インターフェイスの アドレス (IPv4 アドレスの場合は \fBINADDR_LOOPBACK\fP IPv6 +の場合、ネットワークアドレスにはループバックインターフェイスの アドレス (IPv4 アドレスの場合は \fBINADDR_LOOPBACK\fP IPv6 アドレスの場合は \fBIN6ADDR_LOOPBACK_INIT\fP)\fBが設定される。\fP これは同じホスト上で動作している接続相手と通信するような アプリケーションで用いられる。 .PP @@ -291,7 +291,7 @@ glibc 2.3.4 から、 \fBgetaddrinfo\fP() は入出力するホスト名を透 .TP \fBEAI_SERVICE\fP 要求されたサービスは、要求されたソケットタイプでは利用できない。 他のソケットタイプでなら利用可能かもしれない。 このエラーが発生する例としては、 -\fIservice\fP が "shell" (ストリーム・ソケットでのみ利用できるサービス) で、 \fIhints.ai_protocol\fP に +\fIservice\fP が "shell" (ストリームソケットでのみ利用できるサービス) で、 \fIhints.ai_protocol\fP に \fBIPPROTO_UDP\fP が指定されたり、 \fIhints.ai_socktype\fP に \fBSOCK_DGRAM\fP が指定されたりした場合がある。 また、 \fIservice\fP が NULL 以外で、 \fIhints.ai_socktype\fP に \fBSOCK_RAW\fP (サービスの考え方をサポートしていないソケット種別) が指定された場合にも、このエラーが発生する。 diff --git a/release/man3/getaddrinfo_a.3 b/release/man3/getaddrinfo_a.3 new file mode 100644 index 00000000..a9dde718 --- /dev/null +++ b/release/man3/getaddrinfo_a.3 @@ -0,0 +1,459 @@ +.\" Copyright (c) 2009 Petr Baudis +.\" and clean-ups and additions (C) 2010 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 +.\" +.\" References: http://people.redhat.com/drepper/asynchnl.pdf, +.\" http://www.imperialviolet.org/2005/06/01/asynchronous-dns-lookups-with-glibc.html +.\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH GETADDRINFO_A 3 2014\-05\-28 GNU "Linux Programmer's Manual" +.SH 名前 +getaddrinfo_a, gai_suspend, gai_error, gai_cancel \- 非同期のネットワークアドレスとサービスの変換 +.SH 書式 +.nf +\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */ +\fB#include \fP +.sp +\fBint getaddrinfo_a(int \fP\fImode\fP\fB, struct gaicb *\fP\fIlist[]\fP\fB,\fP +\fB int \fP\fInitems\fP\fB, struct sigevent *\fP\fIsevp\fP\fB);\fP +.sp +\fBint gai_suspend(const struct gaicb * const \fP\fIlist[]\fP\fB, int \fP\fInitems\fP\fB,\fP +\fB const struct timespec *\fP\fItimeout\fP\fB);\fP +.sp +\fBint gai_error(struct gaicb *\fP\fIreq\fP\fB);\fP +.sp +\fBint gai_cancel(struct gaicb *\fP\fIreq\fP\fB);\fP +.sp +\fI\-lanl\fP でリンクする。 +.fi +.SH 説明 +\fBgetaddrinfo_a\fP() 関数は \fBgetaddrinfo\fP(3) と同じ処理を実行するが、 複数の名前検索を非同期で実行でき、 +検索処理の完了の通知ができる点が異なる。 + +\fImode\fP 引き数は以下の値のいずれかを指定する。 +.TP +\fBGAI_WAIT\fP +検索を同期で実行する。 呼び出しは検索が完了するまで停止 (block) する。 +.TP +\fBGAI_NOWAIT\fP +検索を非同期で実行する。 呼び出しは直ちに返り、 要求はバックグラウンドで処理される。 以下の \fIsevp\fP 引き数の議論を参照。 +.PP +配列 \fIlist\fP は処理すべき検索要求を指定する。 \fInitems\fP 引き数は \fIlist\fP の要素数を指定する。 +要求された検索命令は並列に開始される。 \fIlist\fP の NULL 要素は無視される。 各要求は以下のように定義された \fIgaicb\fP +構造体で規定される。 +.sp +.in +4n +.nf +struct gaicb { + const char *ar_name; + const char *ar_service; + const struct addrinfo *ar_request; + struct addrinfo *ar_result; +}; +.fi +.in + +この構造体の要素は \fBgetaddrinfo\fP(3) の引き数に対応している。 したがって、 \fIar_name\fP はインターネットホストを示す +\fInode\fP 引き数に、 \fIar_service\fP はサービスを示す \fIservice\fP 引き数に対応する。 \fIar_request\fP 要素は、 +返されたソケットアドレス構造体を選択する基準を示す \fIhints\fP 引き数に対応する。 最後の \fIar_request\fP は \fIres\fP +引き数に対応する。 この要素を初期化する必要はなく、この要素は要求が解決されると自動的にセットされる。 最後の 2 つの要素が参照している +\fIaddrinfo\fP 構造体については \fBgetaddrinfo\fP(3) に説明がある。 + +\fImode\fP に \fBGAI_NOWAIT\fP が指定された場合、 解決した要求に関する通知を \fIsevp\fP 引き数が指す \fIsigevent\fP +構造体を使って受け取ることができる。 この構造体の定義と一般的な説明については \fBsigevent\fP(7) を参照。 +\fIsevp\->sigev_notify\fP フィールドには以下の値を指定できる。 +.TP +\fBSIGEV_NONE\fP +通知は行わない。 +.TP +\fBSIGEV_SIGNAL\fP +.\" si_pid and si_uid are also set, to the values of the calling process, +.\" which doesn't provide useful information, so we'll skip mentioning it. +検索が完了した際に、 プロセスに対してシグナル \fIsigev_signo\fP を生成する。 一般的な説明は \fBsigevent\fP(7) を参照。 +\fIsiginfo_t\fP 構造体の \fIsi_code\fP フィールドには \fBSI_ASYNCNL\fP がセットされる。 +.TP +\fBSIGEV_THREAD\fP +検索が完了した際に、 \fIsigev_notify_function\fP を新しいスレッドの開始関数であるかのように起動する。 詳細は +\fBsigevent\fP(7) を参照。 +.PP +\fBSIGEV_SIGNAL\fP と \fBSIGEV_THREAD\fP では、 \fIsevp\->sigev_value.sival_ptr\fP が +\fIlist\fP を指すようにしておくと役立つことがある。 + +\fBgai_suspend\fP() 関数は呼び出し元のスレッドの実行を中断し、 配列 \fIlist\fP 内の一つ以上の要求が完了するのを待つ。 +\fInitems\fP 引き数は配列 \fIlist\fP の大きさを指定する。 呼び出しは以下のいずれかの状況になるまで停止する。 +.IP * 3 +\fIlist\fP 内の一つ以上の操作が完了した。 +.IP * +呼び出しが補足されたシグナルに割り込まれた。 +.IP * +\fItimeout\fP で指定された期間が経過した。 この引き数は、秒とナノ秒でタイムアウトを指定する (\fItimespec\fP 構造体の詳細は +\fBnanosleep\fP(2) を参照)。 \fItimeout\fP が NULL の場合、 (上記のイベントのいずれかが発生するまで) +呼び出しは無限に停止する。 +.PP +どの要求が完了したかは明示的な通知は行われない。 どの要求が完了したかを知るためには、 要求のリストに対して \fBgai_error\fP() +を繰り返し呼び出す必要がある。 + +\fBgai_error\fP() 関数は要求 \fIreq\fP のステータスを返す。 要求がまだ完了していない場合は \fBEAI_INPROGRESS\fP が、 +要求が正常に処理された場合は 0 が、 要求を解決できなかった場合はエラーコードが返される。 + +\fBgai_cancel\fP() 関数は要求 \fIreq\fP をキャンセルする。 要求が正常にキャンセルされた場合、 要求のエラーステータスに +\fBEAI_CANCELLED\fP が設定され、 通常の非同期通知が実行される。 要求が現在処理中でキャンセルできない場合もある。 この場合 +\fBgai_cancel\fP() が呼ばれなかったかのように処理が行われる。 \fIreq\fP が NULL の場合、 +そのプロセスが行ったすべての処理中の要求をキャンセルしようとする。 +.SH 返り値 +\fBgetaddrinfo_a\fP() 関数はすべての要求が正常にキューに追加されると 0 を返す。 または、以下のいずれかの 0 +でないエラーコードを返す。 +.TP +\fBEAI_AGAIN\fP +検索要求をキューに入れるために必要なリソースがなかった。 アプリケーションは書く要求のエラーステータスを確認し、 +どの要求が失敗したかを判定することができる。 +.TP +\fBEAI_MEMORY\fP +メモリが足りない。 +.TP +\fBEAI_SYSTEM\fP +\fImode\fP が無効である。 +.PP +\fBgai_suspend\fP() 関数はリストの要求の少なくともひとつが完了すると 0 を返す。 それ以外の場合、 以下の 0 +でないエラーコードのいずれかを返す。 +.TP +\fBEAI_AGAIN\fP +いずれかの要求が完了する前に指定されたタイムアウト時間が満了した。 +.TP +\fBEAI_ALLDONE\fP +指定された関数には実際には要求がなかった。 +.TP +\fBEAI_INTR\fP +シグナルが関数に割り込んだ。 この割り込みは検索要求が完了したことを示すシグナル通知により起こる場合もある。 +.PP +\fBgai_error\fP() 関数は、 完了していない検索要求に対して \fBEAI_INPROGRESS\fP を返し、 成功で完了した検索に対して 0 +を返す。 \fBgetaddrinfo\fP(3) が返すエラーコードのいずれかを返す場合もある。 +要求の完了前に明示的に要求がキャンセルされた場合はエラーコード \fBEAI_CANCELLED\fP を返す。 + +\fBgai_cancel\fP() 関数はこれらの値のいずれかを返すことがある。 +.TP +\fBEAI_CANCELLED\fP +要求は正常にキャンセルされた。 +.TP +\fBEAI_NOTCANCELLED\fP +要求はキャンセルされていない。 +.TP +\fBEAI_ALLDONE\fP +要求はすでに完了している。 +.PP +\fBgai_strerror\fP(3) 関数を使うと、 これらのエラーコードを、 エラーレポートに適した人間が読みやすい文字列に翻訳してくれる。 +.SH 準拠 +これらの関数は GNU 拡張である。 バージョン 2.2.3 で初めて glibc に登場した。 +.SH 注意 +\fBgetaddrinfo_a\fP() インターフェースは \fBlio_listio\fP(3) インターフェースの後にモデル化された。 +.SH 例 +ここでは二つの例を示す。 一つは複数の要求を同期処理で並行して解決する例で、 もう一つは非同期機能を使った複雑な例である。 +.SS 同期型の例 +以下のプログラムは単に複数のホスト名の解決を並行で行う。 \fBgetaddrinfo\fP(3) +を使って順番にホスト名の解決を行うのに比べて速度が向上する。 このプログラムは以下のように使う。 +.in +4n +.nf + +$ \fB./a.out ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz\fP +ftp.us.kernel.org: 128.30.2.36 +enoent.linuxfoundation.org: Name or service not known +gnu.cz: 87.236.197.13 +.fi +.in +.PP +プログラムのソースコードは以下のとおりである。 +.nf + +#define _GNU_SOURCE +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int i, ret; + struct gaicb *reqs[argc \- 1]; + char host[NI_MAXHOST]; + struct addrinfo *res; + + if (argc < 2) { + fprintf(stderr, "Usage: %s HOST...\en", argv[0]); + exit(EXIT_FAILURE); + } + + for (i = 0; i < argc \- 1; i++) { + reqs[i] = malloc(sizeof(*reqs[0])); + if (reqs[i] == NULL) { + perror("malloc"); + exit(EXIT_FAILURE); + } + memset(reqs[i], 0, sizeof(*reqs[0])); + reqs[i]\->ar_name = argv[i + 1]; + } + + ret = getaddrinfo_a(GAI_WAIT, reqs, argc \- 1, NULL); + if (ret != 0) { + fprintf(stderr, "getaddrinfo_a() failed: %s\en", + gai_strerror(ret)); + exit(EXIT_FAILURE); + } + + for (i = 0; i < argc \- 1; i++) { + printf("%s: ", reqs[i]\->ar_name); + ret = gai_error(reqs[i]); + if (ret == 0) { + res = reqs[i]\->ar_result; + + ret = getnameinfo(res\->ai_addr, res\->ai_addrlen, + host, sizeof(host), + NULL, 0, NI_NUMERICHOST); + if (ret != 0) { + fprintf(stderr, "getnameinfo() failed: %s\en", + gai_strerror(ret)); + exit(EXIT_FAILURE); + } + puts(host); + + } else { + puts(gai_strerror(ret)); + } + } + exit(EXIT_SUCCESS); +} +.fi +.SS 非同期型の例 +この例は \fBgetaddrinfo_a\fP() の簡単な対話式のフロントエンドである。 通知機能は使っていない。 +.PP +セッションの実行例は以下のようになる。 +.in +4n +.nf + +$ \fB./a.out\fP +> a ftp.us.kernel.org enoent.linuxfoundation.org gnu.cz +> c 2 +[2] gnu.cz: Request not canceled +> w 0 1 +[00] ftp.us.kernel.org: Finished +> l +[00] ftp.us.kernel.org: 216.165.129.139 +[01] enoent.linuxfoundation.org: Processing request in progress +[02] gnu.cz: 87.236.197.13 +> l +[00] ftp.us.kernel.org: 216.165.129.139 +[01] enoent.linuxfoundation.org: Name or service not known +[02] gnu.cz: 87.236.197.13 +.fi +.in +.PP +プログラムのソースは以下のとおりである。 + +.nf +#define _GNU_SOURCE +#include +#include +#include +#include + +static struct gaicb **reqs = NULL; +static int nreqs = 0; + +static char * +getcmd(void) +{ + static char buf[256]; + + fputs("> ", stdout); fflush(stdout); + if (fgets(buf, sizeof(buf), stdin) == NULL) + return NULL; + + if (buf[strlen(buf) \- 1] == \(aq\en\(aq) + buf[strlen(buf) \- 1] = 0; + + return buf; +} + +/* Add requests for specified hostnames */ +static void +add_requests(void) +{ + int nreqs_base = nreqs; + char *host; + int ret; + + while ((host = strtok(NULL, " "))) { + nreqs++; + reqs = realloc(reqs, nreqs * sizeof(reqs[0])); + + reqs[nreqs \- 1] = calloc(1, sizeof(*reqs[0])); + reqs[nreqs \- 1]\->ar_name = strdup(host); + } + + /* Queue nreqs_base..nreqs requests. */ + + ret = getaddrinfo_a(GAI_NOWAIT, &reqs[nreqs_base], + nreqs \- nreqs_base, NULL); + if (ret) { + fprintf(stderr, "getaddrinfo_a() failed: %s\en", + gai_strerror(ret)); + exit(EXIT_FAILURE); + } +} + +/* Wait until at least one of specified requests completes */ +static void +wait_requests(void) +{ + char *id; + int i, ret, n; + struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs)); + /* NULL elements are ignored by gai_suspend(). */ + + while ((id = strtok(NULL, " ")) != NULL) { + n = atoi(id); + + if (n >= nreqs) { + printf("Bad request number: %s\en", id); + return; + } + + wait_reqs[n] = reqs[n]; + } + + ret = gai_suspend(wait_reqs, nreqs, NULL); + if (ret) { + printf("gai_suspend(): %s\en", gai_strerror(ret)); + return; + } + + for (i = 0; i < nreqs; i++) { + if (wait_reqs[i] == NULL) + continue; + + ret = gai_error(reqs[i]); + if (ret == EAI_INPROGRESS) + continue; + + printf("[%02d] %s: %s\en", i, reqs[i]\->ar_name, + ret == 0 ? "Finished" : gai_strerror(ret)); + } +} + +/* Cancel specified requests */ +static void +cancel_requests(void) +{ + char *id; + int ret, n; + + while ((id = strtok(NULL, " ")) != NULL) { + n = atoi(id); + + if (n >= nreqs) { + printf("Bad request number: %s\en", id); + return; + } + + ret = gai_cancel(reqs[n]); + printf("[%s] %s: %s\en", id, reqs[atoi(id)]\->ar_name, + gai_strerror(ret)); + } +} + +/* List all requests */ +static void +list_requests(void) +{ + int i, ret; + char host[NI_MAXHOST]; + struct addrinfo *res; + + for (i = 0; i < nreqs; i++) { + printf("[%02d] %s: ", i, reqs[i]\->ar_name); + ret = gai_error(reqs[i]); + + if (!ret) { + res = reqs[i]\->ar_result; + + ret = getnameinfo(res\->ai_addr, res\->ai_addrlen, + host, sizeof(host), + NULL, 0, NI_NUMERICHOST); + if (ret) { + fprintf(stderr, "getnameinfo() failed: %s\en", + gai_strerror(ret)); + exit(EXIT_FAILURE); + } + puts(host); + } else { + puts(gai_strerror(ret)); + } + } +} + +int +main(int argc, char *argv[]) +{ + char *cmdline; + char *cmd; + + while ((cmdline = getcmd()) != NULL) { + cmd = strtok(cmdline, " "); + + if (cmd == NULL) { + list_requests(); + } else { + switch (cmd[0]) { + case \(aqa\(aq: + add_requests(); + break; + case \(aqw\(aq: + wait_requests(); + break; + case \(aqc\(aq: + cancel_requests(); + break; + case \(aql\(aq: + list_requests(); + break; + default: + fprintf(stderr, "Bad command: %c\en", cmd[0]); + break; + } + } + } + exit(EXIT_SUCCESS); +} +.fi +.SH 関連項目 +\fBgetaddrinfo\fP(3), \fBinet\fP(3), \fBlio_listio\fP(3), \fBhostname\fP(7), \fBip\fP(7), +\fBsigevent\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man3/getnameinfo.3 b/release/man3/getnameinfo.3 index 229d220c..07b24614 100644 --- a/release/man3/getnameinfo.3 +++ b/release/man3/getnameinfo.3 @@ -104,7 +104,7 @@ Domain Name; IDN) 形式との間で 透過的な変換ができるようにな .\" #define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ .\" #endif 成功すると 0 が返り、(要求されていれば) ノードとサービスの名前がヌル終端された文字列の形式でそれぞれの指定バッファに返される -(バッファの長さにあうように縮められるかもしれない)。 エラーの場合は、以下の 0 以外のエラー・コードが返される: +(バッファの長さにあうように縮められるかもしれない)。 エラーの場合は、以下の 0 以外のエラーコードが返される: .TP \fBEAI_AGAIN\fP 指定された名前が現時点では解決できなかった。 後で再試行してみること。 @@ -131,7 +131,7 @@ Domain Name; IDN) 形式との間で 透過的な変換ができるようにな \fBEAI_SYSTEM\fP システムエラーが起った。 エラーコードは \fIerrno\fP に設定される。 .PP -\fBgai_strerror\fP(3) 関数を使うと、これらのエラー・コードを、エラー・レポートに適した 人間が読みやすい文字列に翻訳してくれる。 +\fBgai_strerror\fP(3) 関数を使うと、 これらのエラーコードを、 エラーレポートに適した人間が読みやすい文字列に翻訳してくれる。 .SH ファイル /etc/hosts .br diff --git a/release/man3/getnetent.3 b/release/man3/getnetent.3 index a05db84d..7da29e6a 100644 --- a/release/man3/getnetent.3 +++ b/release/man3/getnetent.3 @@ -64,7 +64,7 @@ getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \- \fInetent\fP 構造体を返す。 .PP \fBgetnetbyaddr\fP() 関数は、\fItype\fP 型のネットワーク番号 \fInet\fP にマッチするエントリを -データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 \fInet\fP 引き数はホスト・バイトオーダでなければならない。 +データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 \fInet\fP 引き数はホストバイトオーダでなければならない。 .PP \fBsetnetent\fP() 関数はデータベースへの接続をオープンし、 次の読み込みエントリを先頭のエントリに設定する。 \fIstayopen\fP が 0 でない場合、 一つ一つの \fBgetnet*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。 @@ -96,7 +96,7 @@ struct netent { ネットワーク番号の形式。現在は \fBAF_INET\fP のみ。 .TP \fIn_net\fP -ホスト・バイトオーダ形式のネットワーク番号。 +ホストバイトオーダ形式のネットワーク番号。 .SH 返り値 \fBgetnetent\fP(), \fBgetnetbyname\fP(), \fBgetnetbyaddr\fP() 関数は、静的に割り当てられた \fInetent\fP 構造体へのポインタを返す。 エラーが起こったり、ファイルの末尾に達した場合はヌルポインタを返す。 diff --git a/release/man3/getservent.3 b/release/man3/getservent.3 index b40d7663..c7c75a6d 100644 --- a/release/man3/getservent.3 +++ b/release/man3/getservent.3 @@ -70,7 +70,7 @@ getservent, getservbyname, getservbyport, setservent, endservent \- .PP \fBgetservbyport\fP() 関数は、 プロトコル \fIproto\fP を用いるサービスのポート番号 \fIport\fP にマッチするエントリをデータベースから探し、 そのエントリの内容を収めた \fIservent\fP 構造体を返す (ポート番号 \fIport\fP -はネットワーク・バイトオーダで指定する)。 \fIproto\fP が NULL の場合は任意のプロトコルにマッチする。 +はネットワークバイトオーダで指定する)。 \fIproto\fP が NULL の場合は任意のプロトコルにマッチする。 必要であれば、データベースへの接続がオープンされる。 .PP \fBsetservent\fP() 関数はデータベースへの接続をオープンし、 次の読み込みエントリを先頭のエントリに設定する。 \fIstayopen\fP が diff --git a/release/man3/inet.3 b/release/man3/inet.3 index 4c687949..6f550073 100644 --- a/release/man3/inet.3 +++ b/release/man3/inet.3 @@ -153,8 +153,8 @@ i386 ではホストバイトオーダは Least Significant Byte (LSB) first ( である点に注意すること。 \fBinet_lnaof\fP(), \fBinet_netof\fP(), \fBinet_makeaddr\fP() は過去の名残であり、渡されたアドレスが -\fIクラスフル・ネットワークアドレス (classful network addresses)\fP であると仮定して処理を行う。 -クラスフル・ネットワークアドレスでは、以下にあるように、 IPv4 ネットワークアドレスをバイト境界でネットワーク部とホスト部に分割する。 +\fIクラスフルネットワークアドレス (classful network addresses)\fP であると仮定して処理を行う。 +クラスフルネットワークアドレスでは、以下にあるように、 IPv4 ネットワークアドレスをバイト境界でネットワーク部とホスト部に分割する。 .TP 10 Class A (ネットワークバイトオーダの) アドレスの最上位ビットが 0 の場合、 このアドレス種別となる。このアドレス種別では、 @@ -168,7 +168,7 @@ Class C (ネットワークバイトオーダの) アドレスの上位側 3 ビットがバイナリ値で 110 の場合、このアドレス種別となる。このアドレス種別では、 上位 3 バイトがネットワークアドレスを表し、 残りの 1 バイトがホストアドレスを表す。 .PP -クラスフル・ネットワークアドレスは現在では廃止され、 クラスレス・ドメイン間ルーチン (CIDR) に取って代わられた。 CIDR +クラスフルネットワークアドレスは現在では廃止され、 クラスレスドメイン間ルーチン (CIDR) に取って代わられた。 CIDR では、アドレスを任意のビット境界 (バイト境界ではない) で ネットワーク部とホスト部に分割する。 .SH 例 以下は \fBinet_aton\fP() と \fBinet_ntoa\fP() の使用例である。このように実行する。 diff --git a/release/man3/inet_net_pton.3 b/release/man3/inet_net_pton.3 new file mode 100644 index 00000000..944f1f6c --- /dev/null +++ b/release/man3/inet_net_pton.3 @@ -0,0 +1,263 @@ +.\" t +.\" Copyright (C) 2014 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. +.\" +.\"******************************************************************* +.TH INET_NET_PTON 3 2014\-05\-28 Linux "Linux Programmer's Manual" +.SH 名前 +inet_net_pton, inet_net_ntop \- インターネットのネットワーク番号の変換 +.SH 書式 +.nf +\fB#include \fP + +\fBint inet_net_pton(int \fP\fIaf\fP\fB, const char *\fP\fIpres\fP\fB,\fP +\fB void *\fP\fInetp\fP\fB, size_t \fP\fInsize\fP\fB);\fP + +\fBchar *inet_net_ntop(int \fP\fIaf\fP\fB, const void *\fP\fInetp\fP\fB, int \fP\fIbits\fP\fB,\fP +\fB char *\fP\fIpres\fP\fB, size_t \fP\fIpsize\fP\fB);\fP +.fi +.sp +\fI\-lresolv\fP でリンクする。 +.sp +.in -4n +glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): +.in +.sp +\fBinet_net_pton\fP(), \fBinet_net_ntop\fP(): +.ad l +.RS 4 +.PD 0 +.TP 4 +glibc 2.20 以降: +_DEFAULT_SOURCE +.TP 4 +glibc 2.20 より前: +_BSD_SOURCE || _SVID_SOURCE +.PD +.RE +.ad b +.SH 説明 +これらの関数は (印字可能な) 表記形式とネットワーク形式 (バイナリー形式) 間の変換を行う。 + +どちらの関数でも \fIaf\fP は変換を行うアドレスファミリーを指定する。 サポートされている値は \fBAF_INET\fP だけである。 +.SS inet_net_pton() +\fBinet_net_pton\fP() 関数は、 表記形式でインターネットネットワーク番号を格納した NULL 終端された文字列である \fIpres\fP +をネットワーク形式に変換する。 ネットワークバイトオーダーの変換結果は \fInetp\fP が指すバッファーに格納される (\fInetp\fP 引き数は通常 +\fIin_addr\fP 構造体を指している)。 \fInsize\fP 引き数は \fInetp\fP で利用可能なバイト数を示す。 + +成功すると \fBinet_net_pton\fP() は \fInetp\fP に格納した結果のネットワーク番号フィールドのビット数を返す。 +入力の表記形式と返り値に関する議論は「注意」の節を参照。 + +\fI注意\fP: \fInetp\fP が指すバッファーは \fBinet_net_pton\fP() の呼び出し前に 0 で埋めるべきである。 +呼び出しではネットワーク番号で必要なバイトだけが書き込まれ、 そのバイト数は完全なネットワークアドレスのバイト数よりも少ないこともある。 +.SS inet_net_ntop() +\fBinet_net_ntop\fP() 関数は \fInetp\fP が指すバッファーのネットワーク番号を表記形式に変換する。 \fI*netp\fP +はネットワークバイトオーダーでの値として解釈される。 \fIbits\fP 引き数は \fI*netp\fP のネットワーク番号のビット数を指定する。 + +NULL 終端された表記形式の文字列は \fIpres\fP が指すバッファーに格納される。 \fIpsize\fP 引き数は \fIpres\fP +で利用可能なバイト数を指定する。 表記形式は CIDR 形式、 つまり、 ネットワークアドレスを表すドット区切りの 10 進数に、 +スラッシュとネットワーク番号のビットサイズが続く形式である。 +.SH 返り値 +成功すると \fBinet_net_pton\fP() はネットワーク番号のビット数を返す。 エラーの場合、 \-1 を返し、 \fIerrno\fP +にエラーを示す値を設定する。 + +成功すると \fBinet_net_ntop\fP() は \fIpres\fP を返す。 エラーの場合、 NULL を返し、 \fIerrno\fP +にエラーを示す値がセットされる。 +.SH エラー +.TP +\fBEAFNOSUPPORT\fP +\fIaf\fP に \fBAF_INET\fP 以外の値が指定された。 +.TP +\fBEMSGSIZE\fP +出力バッファーのサイズが十分でなかった。 +.TP +\fBENOENT\fP +(\fBinet_net_pton\fP() の場合) \fIpres\fP が正しい表記形式ではなかった。 +.SH 準拠 +関数 \fBinet_net_pton\fP() と \fBinet_net_ntop\fP() は非標準だが、多くのシステムで利用可能である。 +.SH 注意 +.SS "inet_net_pton() の入力の表記形式" +ネットワーク番号は、 16 進数値、またはドット区切りの 10 進数表記で指定できる。 + +.\" If the hexadecimal string is short, the remaining nibbles are zeroed. +先頭に "0x" か "0X" がある場合 16 進数値となる。 16 進数はネットワークバイトオーダーの左から右へ半オクテット (4 ビット) +ずつ順番に埋められる。 + +ドット区切りの 10 進数表記では、 最大 4 つのオクテットをドット区切りの 10 進数で指定する。 したがって、 以下の形式を指定できる。 + + a.b.c.d + a.b.c + a.b + a + +.\" Reading other man pages, some other implementations treat +.\" 'c' in a.b.c as a 16-bit number that populates right-most two bytes +.\" 'b' in a.b as a 24-bit number that populates right-most three bytes +各部分は 0 から 255 の範囲の数字で、ネットワーク番号の各バイトに左から右にネットワークバイトオーダー (ビッグエンディアン) +で順番に埋められる。 省略された部分があれば、 対応するネットワーク番号のバイトは 0 となる。 + +16 進数とドット区切りの 10 進数形式のどちらの場合も、 ネットワーク番号の後ろにスラッシュと 0 から 32 +の範囲の数字をオプションで付けることができる。 この数字はネットワーク番号のビット単位のサイズを示すものである。 +.SS "inet_net_pton() の返り値" +\fBinet_net_pton\fP() の返り値はネットワーク番号フィールドのビット数である。 +入力の表記形式の文字列がスラッシュとサイズの明示的な値で終わっている場合、 指定されたサイズが \fBinet_net_pton\fP() の返り値となる。 +そうでない場合は、 返り値 \fIbits\fP が以下のようにして推測される。 +.IP * 3 +ネットワーク番号の最上位バイトが 240 以上の場合、 \fIbits\fP は 32 となる。 +.IP * 3 +それ以外で、 ネットワーク番号の最上位バイトが 224 以上の場合、 \fIbits\fP は 4 となる。 +.IP * 3 +それ以外で、 ネットワーク番号の最上位バイトが 192 以上の場合、 \fIbits\fP は 24 となる。 +.IP * 3 +それ以外で、 ネットワーク番号の最上位バイトが 128 以上の場合、 \fIbits\fP は 16 となる。 +.IP * +それ以外の場合、 \fIbits\fP は 8 となる。 +.PP +上記の手順から得られる \fIbits\fP の値が 8 以上だが、 ネットワーク番号で指定されたオクテット数が \fIbits/8\fP より大きい場合、 +\fIbits\fP には実際に指定されたオクテット数を 8 倍した値が設定される。 +.SH 例 +以下のプログラムは \fBinet_net_pton\fP() と \fBinet_net_ntop\fP() の使用例を示すものである。 +\fBinet_net_pton\fP() を使って、 コマンドラインの最初の引き数で渡された表記形式のネットワークアドレスをバイナリー形式に変換し、 +\fIinet_net_pton\fP() の返り値を出力する。 それから \fBinet_net_ntop\fP() +を使ってバイナリー形式を表記形式に再度戻して、結果の文字列を出力する。 + +\fBinet_net_pton\fP() が \fInetp\fP 引き数のすべてのバイトに書き込むわけではないことを示すため、 プログラムにはオプションで 2 +番目のコマンドライン引き数を指定することができ、 その引き数の数字を使って \fBinet_net_pton\fP() を呼び出す前にバッファーを初期化する。 +出力の最終行として、 ユーザーがどのバイトが \fBinet_net_pton\fP() によって変更されなかったかを確認できるように、 プログラムは +\fBinet_net_pton\fP() が返したバッファーの全バイトを表示する。 + +この実行例では、 \fBinet_net_pton\fP() が推測したネットワーク番号のビット数を表示する。 + +.in +4n +.nf +$ \fB./a.out 193.168\fP +inet_net_pton() returned: 24 +inet_net_ntop() yielded: 193.168.0/24 +Raw address: c1a80000 +.fi +.in + +\fBinet_net_pton\fP() が結果のバッファーの未使用バイトを 0 埋めしないことを確認する。 + +.in +4n +.nf +$ \fB./a.out 193.168 0xffffffff\fP +inet_net_pton() returned: 24 +inet_net_ntop() yielded: 193.168.0/24 +Raw address: c1a800ff +.fi +.in + +表記形式の文字列で渡されたバイト数が推測した値より大きい場合、 \fBinet_net_pton\fP() +が推測するネットワーク番号のサイズを広げることを確認する。 + +.in +4n +.nf +$ \fB./a.out 193.168.1.128\fP +inet_net_pton() returned: 32 +inet_net_ntop() yielded: 193.168.1.128/32 +Raw address: c1a80180 +.fi +.in + +ネットワーク番号のサイズが明示的に指定すると、推測されるネットワーク番号のサイズが上書きされる (ただし、 明示的に指定された残りのバイトは +\fBinet_net_pton\fP() で使用され、結果のバッファーに書き込まれる)。 + +.in +4n +.nf +$ \fB./a.out 193.168.1.128/24\fP +inet_net_pton() returned: 24 +inet_net_ntop() yielded: 193.168.1/24 +Raw address: c1a80180 +.fi +.in +.SS プログラムのソース +.nf +/* "\-lresolv" でリンクする */ + +#include +#include +#include + +#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \e + } while (0) + +int +main(int argc, char *argv[]) +{ + char buf[100]; + struct in_addr addr; + int bits; + + if (argc < 2) { + fprintf(stderr, + "Usage: %s presentation\-form [addr\-init\-value]\en", + argv[0]); + exit(EXIT_FAILURE); + } + + /* argv[2] (数値) が指定されると、その数字を使って inet_net_pton() + に渡す出力バッファーを初期化する。これにより inet_net_pton() が + ネットワーク番号に必要なバイトだけを書き込むことを確認できるよう + にする。 argv[2] が指定されなかった場合、バッファーは 0 で初期化 + する (これが推奨される方法である)。 */ + + addr.s_addr = (argc > 2) ? strtod(argv[2], NULL) : 0; + + /* argv[1] の表記形式のネットワーク番号をバイナリー形式に変換する */ + + bits = inet_net_pton(AF_INET, argv[1], &addr, sizeof(addr)); + if (bits == \-1) + errExit("inet_net_ntop"); + + printf("inet_net_pton() returned: %d\en", bits); + + /* inet_net_pton() が返した \(aqbits\(aq を使って、 + バイナリー形式を表記形式に変換する */ + + if (inet_net_ntop(AF_INET, &addr, bits, buf, sizeof(buf)) == NULL) + errExit("inet_net_ntop"); + + printf("inet_net_ntop() yielded: %s\en", buf); + + /* \(aqaddr\(aq を名前の形で (ネットワークバイトオーダーで) 表示する。 + これにより inet_net_ntop() が表示しないバイトを確認できる。 + これらのバイトの一部は inet_net_ntop() では変更されない場合があり、 + その場合 argv[2] で指定された初期値のままになる。 */ + + printf("Raw address: %x\en", htonl(addr.s_addr)); + + exit(EXIT_SUCCESS); +} +.fi +.SH 関連項目 +\fBinet\fP(3), \fBnetworks\fP(5) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man3/resolver.3 b/release/man3/resolver.3 index 2a33e138..da01118a 100644 --- a/release/man3/resolver.3 +++ b/release/man3/resolver.3 @@ -46,7 +46,7 @@ .TH RESOLVER 3 2014\-05\-28 GNU "Linux Programmer's Manual" .SH 名前 res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, -dn_comp, dn_expand \- レゾルバ・ルーチン +dn_comp, dn_expand \- レゾルバルーチン .SH 書式 .nf \fB#include \fP @@ -132,9 +132,8 @@ dn_comp, dn_expand \- レゾルバ・ルーチン バッファーに正式なドメイン名を展開する。 その圧縮された名前は、問い合わせ、または応答メッセージに含まれていて、 \fImsg\fP がメッセージの冒頭を指す。 .PP -レゾルバ・ルーチンは、\fI\fP に定義された \fI_res\fP 構造体に -含まれている全体的な設定と状態の情報を使用する。 通常ユーザーに操作できる項目は \fI_res.options\fP だけである。 -この項目は以下のオプションのビット単位の論理和にできる。 +レゾルバルーチンは、\fI\fP に定義された \fI_res\fP 構造体に 含まれている全体的な設定と状態の情報を使用する。 +通常ユーザーに操作できる項目は \fI_res.options\fP だけである。 この項目は以下のオプションのビット単位の論理和にできる。 .TP \fBRES_INIT\fP \fBres_init\fP() が呼び出されていれば真。 @@ -153,7 +152,7 @@ dn_comp, dn_expand \- レゾルバ・ルーチン 問い合わせに UDP データグラムではなく TCP 接続を用いる。 .TP \fBRES_PRIMARY\fP -プライマリ・ドメインネームサーバーのみ問い合わせる。 +プライマリドメインネームサーバーのみ問い合わせる。 .TP \fBRES_IGNTC\fP 切り詰めエラー (truncation error) を無視する。TCP でリトライしない。 [現在実装されていない] diff --git a/release/man3/setnetgrent.3 b/release/man3/setnetgrent.3 index 649f859d..df21a944 100644 --- a/release/man3/setnetgrent.3 +++ b/release/man3/setnetgrent.3 @@ -20,7 +20,7 @@ .TH SETNETGRENT 3 2014\-05\-28 GNU "Linux Programmer's Manual" .SH 名前 setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \- -ネットワーク・グループのエントリを操作する +ネットワークグループのエントリを操作する .SH 書式 .nf \fB#include \fP diff --git a/release/man4/random.4 b/release/man4/random.4 index defb49da..b8d93161 100644 --- a/release/man4/random.4 +++ b/release/man4/random.4 @@ -58,17 +58,13 @@ random, urandom \- カーネル乱数ソースデバイス 利用可能なデータが返される。 利用可能なバイトが全くない場合、 \fBread\fP(2) は \-1 を返し、 \fIerrno\fP に \fBEAGAIN\fP が設定される。 .LP -A read from the \fI/dev/urandom\fP device will not block waiting for more -entropy. If there is not sufficient entropy, a pseudorandom number -generator is used to create the requested bytes. As a result, in this case -the returned values are theoretically vulnerable to a cryptographic attack -on the algorithms used by the driver. Knowledge of how to do this is not -available in the current unclassified literature, but it is theoretically -possible that such an attack may exist. If this is a concern in your -application, use \fI/dev/random\fP instead. \fBO_NONBLOCK\fP has no effect when -opening \fI/dev/urandom\fP. When calling \fBread\fP(2) for device -\fI/dev/urandom\fP signals will not be handled until after the requested random -bytes have been generated. +\fI/dev/urandom\fP デバイスから読み出しでは、 エントロピーがより高くなるのを待つためのブロックは行われない。 +十分なエントロピーがない場合、 要求されたバイトを作成するのに疑似乱数生成器が使用される。 その結果、 +この場合の返り値はこのドライバで使われているアルゴリズムに基づく暗号攻撃に対して、 論理的には弱くなることになる。 +この攻撃をどのように行うかという事については、現在研究論文などの 形で入手できる資料はない、しかし、そのような攻撃は論理的に存在可能である。 +もし、この事が心配なら、(\fI/dev/urandom\fP ではなく) \fI/dev/random\fP を利用すればいい。 \fBO_NONBLOCK\fP は +\fI/dev/urandom\fP をオープンする際には効果がない。 デバイス \fI/dev/urandom\fP に対して \fBread\fP(2) +を呼び出した際、 要求されたランダムバイトが生成されるまでシグナルは処理されない。 .LP \fI/dev/random\fP や \fI/dev/urandom\fP に書き込みを行うと、 書き込まれたデータでエントロピー・プールが更新される。 しかし、 エントロピー・カウントが増えるわけではない。 つまり、 \fI/dev/random\fP と \fI/dev/urandom\fP diff --git a/release/man5/hosts.5 b/release/man5/hosts.5 index 3ce11f5c..d81f067a 100644 --- a/release/man5/hosts.5 +++ b/release/man5/hosts.5 @@ -50,9 +50,10 @@ IPアドレス 正式なホスト名 [エイリアス...] .RE .PP エントリのフィールドは、空白またはタブ (複数でも可) で区切られる。 "#" 文字から行末までのテキストはコメントとして無視される。 -ホスト名は英数字・マイナス記号 ("\-")・ピリオド (".") を含むことができる。 ホスト名は英文字 (alphabetic character) -で始まって、 英数字 (alphanumeric characte) で終わらなければならない。 エイリアスはオプションであり、名前の変更、別のスペル、 -短いホスト名、一般的に使われるホスト名 (例えば \fIlocalhost\fP) などのために用意されている。 +ホスト名は英数字、 マイナス記号 ("\-")、 ピリオド (".") を含むことができる。 ホスト名は英文字 (alphabetic +character) で始まって、 英数字 (alphanumeric characte) で終わらなければならない。 +エイリアスはオプションであり、名前の変更、別のスペル、 短いホスト名、一般的に使われるホスト名 (例えば \fIlocalhost\fP) +などのために用意されている。 .PP Berkeley Internet Name Domain (BIND) サーバは、 UNIX システムのためのインターネットネームサーバを実装している。 これは、 \fI/etc/hosts\fP diff --git a/release/man5/nscd.conf.5 b/release/man5/nscd.conf.5 index b3da1f81..a448a370 100644 --- a/release/man5/nscd.conf.5 +++ b/release/man5/nscd.conf.5 @@ -124,7 +124,7 @@ \fBshared\fP \fIservice\fP \fI\fP .RS -\fIservice\fP の nscd データベースのメモリ・マッピングをクライアント間で共有する。 +\fIservice\fP の nscd データベースのメモリマッピングをクライアント間で共有する。 これにより、検索を実行する度にソケット経由でデーモンに問い合わせを 行わずに、直接データベースを検索できるようになる。デフォルトは共有しない。 .RE diff --git a/release/man5/nss.5 b/release/man5/nss.5 new file mode 100644 index 00000000..6c5ad5fe --- /dev/null +++ b/release/man5/nss.5 @@ -0,0 +1,77 @@ +.\" Copyright (C) 2006 Red Hat, Inc. All rights reserved. +.\" Author: Ulrich Drepper +.\" +.\" %%%LICENSE_START(GPLv2_MISC) +.\" This copyrighted material is made available to anyone wishing to use, +.\" modify, copy, or redistribute it subject to the terms and conditions of the +.\" GNU General Public License v.2. +.\" +.\" This program 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. +.\" +.\"******************************************************************* +.TH NSS 5 2013\-02\-13 Linux "Linux Programmer's Manual" +.SH 名前 +nss \- 名前サービス切り替え (Name Service Switch) の設定ファイル +.SH 説明 +パスワードやグループのデータベースなどのシステムデータベースからのデータ取得の関数の呼び出しは、 GNU C +ライブラリの名前サービス切り替えの実装により処理される。 提供されている様々なサービスは個別のモジュールにより実装されており、 +各モジュールは本質的に大きく異なっている。 +.PP +GNU C ライブラリでのデフォルト実装は、 デフォルトでは保守的になっており、 安全でないデータは使用しない。 これはいくつかの状況、 +特にデータベースが大きい場合、では非常にコストがかかることがある。 いくつかのモジュールでは、 安全であると分かっている場合、 +システム管理者がショットカットを使うようにすることができる。 この前提が正しいことを保証するのはシステム管理者の責任である。 +.PP +他には実装が時間を追って変化しているモジュールもある。 モジュールの実装がメモリー使用量を優先してスピードを犠牲にしていた場合、 +優先度を変更すると問題が起こる場合がある。 +.PP +\fI/etc/default/nss\fP ファイルには変数がいくつかある。 各変数は一つもしくは複数の NSS モジュールの動作を制御する。 +ホワイトスペースは無視される。 \(aq#\(aq で始まる行はコメントとして扱われる。 +.PP +現在のところ認識される変数は次の通り。 +.TP +\fBNETID_AUTHORITATIVE =\fP \fITRUE\fP|\fIFALSE\fP +TRUE に設定されると、 \fBinitgroups\fP(3) 関数の NIS バックエンドが \fInetid.byname\fP NIS +マップからの情報を信頼できるものとして受け取る。 \fIgroup.byname\fP マップが大きい場合、 これによりこの関数を大きくスピードアップできる。 +\fInetid.byname\fP マップの内容は\fBそのまま\fP使用される。 システム管理者は内容が正しく生成されていることを保証しなければならない。 +.TP +\fBSERVICES_AUTHORITATIVE =\fP \fITRUE\fP|\fIFALSE\fP +TRUE に設定されると、 関数 \fBgetservbyname\fP(3) と \fBgetservbyname_r\fP(3) の NIS バックエンドが +\fIservices.byservicename\fP NIS マップが存在し、その情報を信頼できるものとみなす。 特に、 +サービス名とサービス別名の両方に対して /proto ありと /proto なしの両方のキーが含まれているとみなす。 +システム管理者は内容が正しく生成されていることを保証しなければならない。 +.TP +\fBSETENT_BATCH_READ =\fP \fITRUE\fP|\fIFALSE\fP +TRUE に設定されると、 関数 \fBsetpwent\fP(3) と \fBsetgrent\fP(3) の NIS バックエンドは、 +全データベースを一度に読み込み、 それから対応する \fBgetpwent\fP(3) や \fBgetgrent\fP(3) の呼び出しで一つ一つ要求を処理する。 +TRUE でない場合、 \fBgetpwent\fP(3) や \fBgetgrent\fP(3) の各々の呼び出しで、 +次のエントリーを取得するためにサーバーとのネットワーク通信が発生する。 +.SH ファイル +\fI/etc/default/nss\fP +.SH 例 +デフォルト設定は、 以下の設定ファイルと同じである。 + +.nf +.\" .SH AUTHOR +.\" Ulrich Drepper +.\" +NETID_AUTHORITATIVE=FALSE +SERVICES_AUTHORITATIVE=FALSE +SETENT_BATCH_READ=FALSE +.SH 関連項目 +\fInsswitch.conf\fP +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。 diff --git a/release/man7/arp.7 b/release/man7/arp.7 index ae4f8372..6aea1633 100644 --- a/release/man7/arp.7 +++ b/release/man7/arp.7 @@ -134,17 +134,17 @@ anycast のサポートはまだ実装されていない。 デフォルトは 1 .TP \fIgc_thresh1\fP (Linux 2.2 以降) .\" Precisely: 2.1.79 -ARP キャッシュに保存するエントリ数の最小値。 この数より少ないエントリしかキャッシュになければ、 ガベージ・コレクタは実行されない。 デフォルトは +ARP キャッシュに保存するエントリ数の最小値。 この数より少ないエントリしかキャッシュになければ、 ガベージコレクタは実行されない。 デフォルトは 128。 .TP \fIgc_thresh2\fP (Linux 2.2 以降) .\" Precisely: 2.1.79 -ARP キャッシュに保存されるエントリ数のソフトな最大値。 キャッシュのエントリがこの数を 5 秒間越えつづけると、 ガベージ・コレクタが実行される。 +ARP キャッシュに保存されるエントリ数のソフトな最大値。 キャッシュのエントリがこの数を 5 秒間越えつづけると、 ガベージコレクタが実行される。 デフォルトは 512。 .TP \fIgc_thresh3\fP (Linux 2.2 以降) .\" Precisely: 2.1.79 -ARP キャッシュに保存されるエントリ数のハードな最大値。 キャッシュのエントリがこの数を越えると、 ガベージ・コレクタはただちに実行される。 +ARP キャッシュに保存されるエントリ数のハードな最大値。 キャッシュのエントリがこの数を越えると、 ガベージコレクタはただちに実行される。 デフォルトは 1024。 .TP \fIlocktime\fP (Linux 2.2 以降) @@ -160,7 +160,7 @@ ARP エントリをキャッシュに保存する時間の最小値 (jiffy 単 \fIproxy_delay\fP (Linux 2.2 以降) .\" Precisely: 2.1.79 既知の代理 ARP アドレスに対して ARP リクエストを受信した場合に、 応答前に最大 \fIproxy_delay\fP jiffy -まで遅延する。これは場合によって生じる ネットワーク・フラッディング (network flooding) を避けるために用いる。 デフォルトは 0.8 +まで遅延する。これは場合によって生じる ネットワークフラッディング (network flooding) を避けるために用いる。 デフォルトは 0.8 秒。 .TP \fIproxy_qlen\fP (Linux 2.2 以降) diff --git a/release/man7/ddp.7 b/release/man7/ddp.7 index bd684b25..faa7c7bd 100644 --- a/release/man7/ddp.7 +++ b/release/man7/ddp.7 @@ -44,7 +44,7 @@ AppleTalk ソケットは、 ソケットファミリーの引数に \fBAF_APPLE .PP raw ソケットは実効ユーザー ID が 0 のプロセスか、 \fBCAT_NEW_RAW\fP 権限を持ったプロセスでないとオープンできない。 .SS アドレスのフォーマット -AppleTalk ソケットアドレスはネットワーク番号・ノード番号・ポート番号の 組み合わせで定義される。 +AppleTalk ソケットアドレスはネットワーク番号、 ノード番号、 ポート番号の組み合わせで定義される。 .PP .in +4n .nf @@ -170,7 +170,7 @@ raw ソケットモードは Linux 独特のもので、もう一方の実装で .SH バグ エラーの値がまったく首尾一貫していない。 .PP -ルーティングテーブル・デバイス・ AARP テーブル・その他のデバイスを 設定するために用いられる ioctl がまだ記述されていない。 +ルーティングテーブル、 デバイス、 AARP テーブル、 その他のデバイスを設定するために用いられる ioctl がまだ記述されていない。 .SH 関連項目 \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBcapabilities\fP(7), \fBsocket\fP(7) .SH この文書について diff --git a/release/man7/hostname.7 b/release/man7/hostname.7 index 1fc3c8a2..48dbeb0c 100644 --- a/release/man7/hostname.7 +++ b/release/man7/hostname.7 @@ -58,7 +58,7 @@ hostname \- ホスト名の名前解決の説明 使用され、使用する際には名前からアドレスに変換しなければならない (一般 的にはアドレスへの変換処理は \fBgetaddrinfo\fP(3) か (廃止予定の) \fBgethostbyname\fP(3) で行われる)。ホスト名の解決は、 -インターネット・ネームリゾルバによって以下の方法で実行される。 +インターネットネームリゾルバによって以下の方法で実行される。 ホスト名がドットを含まない単一要素で構成されていて、環境変数 \fBHOSTALIASES\fP にファイル名が設定されている場合、入力されたホスト名に diff --git a/release/man7/icmp.7 b/release/man7/icmp.7 index 7bf71c5c..76fd2f94 100644 --- a/release/man7/icmp.7 +++ b/release/man7/icmp.7 @@ -39,8 +39,8 @@ Linux では ICMP エラーパケットのレートをそれぞれの送り先 .\" FIXME . better description needed ICMP では、いくつかのグローバルパラメータを設定するための \fI/proc\fP ファイル群が用意されている。 これらのパラメータには、 \fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルの読み書きでアクセスできる。 これらのパラメータのほとんどは特定の ICMP -タイプに対するレート制限 (rate limitation) である。 Linux 2.2 は ICMP の制限にトークン・バケット・フィルタ -(token bucket filter) を用いる。 それぞれの値は、バーストの後にトークン・バケット・フィルタがクリア +タイプに対するレート制限 (rate limitation) である。 Linux 2.2 は ICMP の制限にトークンバケットフィルタ (token +bucket filter) を用いる。 それぞれの値は、バーストの後にトークンバケットフィルタがクリア されるまでのタイムアウトを秒単位で表したものである。最小単位(jiffy)は システム依存の単位で i386 システムは通常 10ms、alpha や ia64 では 1ms である。 .TP @@ -134,8 +134,8 @@ I Address Mask Reply 他の多くの実装では、 \fBIPPROTO_ICMP\fP raw ソケットがサポートされていない。 この機能は移植性が必要なプログラムでは用いるべきでない。 .PP Linux がルーターとして動作していないときには、 \fBICMP_REDIRECT\fP パケットは送信されない。 -またこれらが受け取られるのも、発信元がルーティングテーブルに定義されている 古いゲートウェイで、リダイレクト・ルート (redirect route) -が 適当な時間の後に期限切れになっている場合に限られる。 +またこれらが受け取られるのも、発信元がルーティングテーブルに定義されている 古いゲートウェイで、リダイレクトルート (redirect route) が +適当な時間の後に期限切れになっている場合に限られる。 .PP \fBICMP_TIMESTAMP\fP から返される 64 ビットのタイムスタンプは、 紀元 (Epoch) である 1970\-01\-01 00:00:00 +0000 (UTC) からの経過時間をミリ秒単位で表したものである。 diff --git a/release/man7/ip.7 b/release/man7/ip.7 index 0f533c9b..32697919 100644 --- a/release/man7/ip.7 +++ b/release/man7/ip.7 @@ -76,7 +76,7 @@ Linux は RFC\ 791 と RFC\ 1122 で記述されている Internet Protocol, ver \fBip\fP には RFC\ 1112 に準拠した level 2 マルチキャストの実装が含まれている。 またパケットフィルタ機能を含む IP ルーターも実装されている。 .PP -プログラミング・インターフェースは BSD ソケットと互換である。 ソケットに関するより詳細な情報は \fBsocket\fP(7) を参照のこと。 +プログラミングインターフェースは BSD ソケットと互換である。 ソケットに関するより詳細な情報は \fBsocket\fP(7) を参照のこと。 .PP IP ソケットは、 \fBsocket\fP(2) 関数を \fBsocket(AF_INET, \fP\fIsocket_type\fP\fB, \fP \fIprotocol\fP\fB)\fP のように呼び出すことで生成される。指定できるソケットタイプは diff --git a/release/man7/tcp.7 b/release/man7/tcp.7 index e18c0328..a61871db 100644 --- a/release/man7/tcp.7 +++ b/release/man7/tcp.7 @@ -504,9 +504,10 @@ RFC\ 1323 の TCP timestamps を有効にする。 .\" Since 2.3.15 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt -TIME_WAIT ソケットの fast recycling を有効にする。 通常のインターネットと通信したり NAT (ネットワークアドレス変換) -を使うデバイスでは、 このオプションを有効にするのは推奨されない。 いくつかの NAT ゲートウェイでは IP タイムスタンプをそのまま通過させるので、 -一つの IP が増加しないタイムスタンプを持つように見える。 RFC 1323 (PAWS), RFC 6191 を参照。 +TIME_WAIT ソケットの素早い再利用 (fast recycling) を有効にする。 通常のインターネットと通信したり NAT +(ネットワークアドレス変換) を使うデバイスでは、 このオプションを有効にするのは推奨されない。 いくつかの NAT ゲートウェイでは IP +タイムスタンプをそのまま通過させるので、 一つの IP が増加しないタイムスタンプを持つように見える。 RFC 1323 (PAWS), RFC +6191 を参照。 .TP \fItcp_tw_reuse\fP (ブール値; デフォルト: 無効; Linux 2.4.19/2.6 以降) .\" Since 2.4.19/2.5.43 diff --git a/release/man7/unix.7 b/release/man7/unix.7 index fb255109..63346a80 100644 --- a/release/man7/unix.7 +++ b/release/man7/unix.7 @@ -52,7 +52,7 @@ unix \- ローカルな プロセス間通信用のソケット UNIX ドメインに指定できるソケットタイプは以下の通りである。 \fBSOCK_STREAM\fP は、 ストリーム指向のソケットで有効である。 \fBSOCK_DGRAM\fP は、 メッセージ境界を保存するデータグラム指向のソケットで有効である (ほとんどの UNIX の実装では、 UNIX -ドメイン・データグラム・ソケットは常に信頼でき、 データグラムの並び替えは行わない)。 \fBSOCK_SEQPACKET\fP は、 +ドメインデータグラムソケットは常に信頼でき、 データグラムの並び替えは行わない)。 \fBSOCK_SEQPACKET\fP は、 メッセージ境界を保存し送信された順序でメッセージを届ける接続指向ソケットで有効である (Linux 2.6.4 以降で利用できる)。 UNIX ドメインソケットでは、補助データを使って ファイルディスクリプタや @@ -167,7 +167,7 @@ UNIX ドメインソケットでは、帯域外データ (out\-of\-band data) ソケットではサポートされていない。 \fBSO_SNDBUF\fP ソケットオプションは UNIX ドメインソケットで効果を持つが、 -\fBSO_RCVBUF\fP は効果がない。 データグラム・ソケットでは、 \fBSO_SNDBUF\fP の値が +\fBSO_RCVBUF\fP は効果がない。 データグラムソケットでは、 \fBSO_SNDBUF\fP の値が 出力データグラムの上限サイズとなる。 実際の上限値は、 \fBSO_SNDBUF\fP オプション として設定された値の 2倍 (\fBsocket\fP(7) 参照) からオーバヘッドとして使用される 32 バイトを引いた値となる。 @@ -306,7 +306,7 @@ Linux の実装では、 ファイルシステム上から見えるソケット コールで補助データ以外のデータを少なくとも 1 バイト送信/受信する必要がある。 .\" -UNIX ドメインのストリーム・ソケットでは、 帯域外データの概念はサポートされない。 +UNIX ドメインのストリームソケットでは、 帯域外データの概念はサポートされない。 .SH バグ .\" The behavior on Solaris is quite similar. ソケットをアドレスに結びつける際、 Linux は終端の NULL が \fIsun_path\fP になかった場合に追加する実装の一つである。 diff --git a/translation_list b/translation_list index f11bcadb..43e741b7 100644 --- a/translation_list +++ b/translation_list @@ -4,10 +4,10 @@ ○:LDP man-pages:3.77:2014/10/02:ldd:1:2015/01/11::ysato@h4.dion.ne.jp:Yuichi SATO: ×:LDP man-pages:3.77:2014/05/28:locale:1::::: ×:LDP man-pages:3.77:2014/12/31:localedef:1::::: -×:LDP man-pages:3.77:2014/09/06:memusage:1::::: -×:LDP man-pages:3.77:2014/09/06:memusagestat:1::::: -×:LDP man-pages:3.77:2014/09/01:mtrace:1::::: -×:LDP man-pages:3.77:2014/09/27:pldd:1::::: +○:LDP man-pages:3.77:2014/09/06:memusage:1:2015/01/12::amotoki@gmail.com:Akihiro Motoki: +○:LDP man-pages:3.77:2014/09/06:memusagestat:1:2015/01/12::amotoki@gmail.com:Akihiro Motoki: +○:LDP man-pages:3.77:2014/09/01:mtrace:1:2015/01/12::amotoki@gmail.com:Akihiro Motoki: +○:LDP man-pages:3.77:2014/09/27:pldd:1:2015/01/12::amotoki@gmail.com:Akihiro Motoki: ×:LDP man-pages:3.77:2014/06/24:sprof:1::::: ○:LDP man-pages:3.77:2008/11/14:time:1:2015/01/11::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI: @:LDP man-pages:3.77:2010/09/20:_Exit:2:_exit:2: @@ -1007,10 +1007,10 @@ @:LDP man-pages:3.77:2014/03/19:fwprintf:3:wprintf:3: @:LDP man-pages:3.77:2012/03/30:fwrite:3:fread:3: @:LDP man-pages:3.77:2008/08/29:fwrite_unlocked:3:unlocked_stdio:3: -※:LDP man-pages:3.77:2014/05/28:gai_cancel:3:getaddrinfo_a:3: -※:LDP man-pages:3.77:2014/05/28:gai_error:3:getaddrinfo_a:3: +@:LDP man-pages:3.77:2014/05/28:gai_cancel:3:getaddrinfo_a:3: +@:LDP man-pages:3.77:2014/05/28:gai_error:3:getaddrinfo_a:3: @:LDP man-pages:3.77:2014/04/06:gai_strerror:3:getaddrinfo:3: -※:LDP man-pages:3.77:2014/05/28:gai_suspend:3:getaddrinfo_a:3: +@:LDP man-pages:3.77:2014/05/28:gai_suspend:3:getaddrinfo_a:3: ○:LDP man-pages:3.77:2008/08/05:gamma:3:2015/01/11::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI: @:LDP man-pages:3.77:2008/08/05:gammaf:3:gamma:3: @:LDP man-pages:3.77:2008/08/05:gammal:3:gamma:3: @@ -1020,7 +1020,7 @@ @:LDP man-pages:3.77:2012/03/20:get_nprocs:3:get_nprocs_conf:3: ○:LDP man-pages:3.77:2012/03/20:get_nprocs_conf:3:2015/01/11::amotoki@gmail.com:Akihiro MOTOKI: ○:LDP man-pages:3.77:2014/04/06:getaddrinfo:3:2015/01/11::amotoki@gmail.com:Akihiro MOTOKI: -×:LDP man-pages:3.77:2014/05/28:getaddrinfo_a:3::::: +○:LDP man-pages:3.77:2014/05/28:getaddrinfo_a:3:2015/01/12::amotoki@gmail.com:Akihiro Motoki: @:LDP man-pages:3.77:2003/09/09:getaliasbyname:3:setaliasent:3: @:LDP man-pages:3.77:2003/09/09:getaliasbyname_r:3:setaliasent:3: @:LDP man-pages:3.77:2003/09/09:getaliasent:3:setaliasent:3: @@ -1186,8 +1186,8 @@ @:LDP man-pages:3.77:2014/05/28:inet_aton:3:inet:3: @:LDP man-pages:3.77:2014/05/28:inet_lnaof:3:inet:3: @:LDP man-pages:3.77:2014/05/28:inet_makeaddr:3:inet_addr:3: -※:LDP man-pages:3.77:2014/05/28:inet_net_ntop:3:inet_net_pton:3: -×:LDP man-pages:3.77:2014/05/28:inet_net_pton:3::::: +@:LDP man-pages:3.77:2014/05/28:inet_net_ntop:3:inet_net_pton:3: +○:LDP man-pages:3.77:2014/05/28:inet_net_pton:3:2015/01/12::amotoki@gmail.com:Akihiro Motoki: @:LDP man-pages:3.77:2014/05/28:inet_netof:3:inet:3: @:LDP man-pages:3.77:2014/05/28:inet_network:3:inet:3: @:LDP man-pages:3.77:2014/05/28:inet_ntoa:3:inet:3: @@ -2048,7 +2048,7 @@ ○:LDP man-pages:3.77:2008/09/04:networks:5:2015/01/11::amotoki@gmail.com:Akihiro MOTOKI: ○:LDP man-pages:3.77:2012/04/16:nologin:5:2015/01/11::amotoki@gmail.com:Akihiro MOTOKI: ○:LDP man-pages:3.77:2014/02/07:nscd.conf:5:2015/01/11::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI: -×:LDP man-pages:3.77:2013/02/13:nss:5::::: +○:LDP man-pages:3.77:2013/02/13:nss:5:2015/01/12::amotoki@gmail.com:Akihiro Motoki: ○:LDP man-pages:3.77:2013/02/12:nsswitch.conf:5:2015/01/11::amotoki@gmail.com:Akihiro MOTOKI: @:LDP man-pages:3.77:2012/08/05:numa_maps:5:numa:7: ○:LDP man-pages:3.77:2014/02/11:passwd:5:2015/01/11::amotoki@gmail.com:Akihiro MOTOKI: -- 2.11.0