OSDN Git Service

(split) LDP: Translate the following pages LDP-3.51-final
authorAkihiro MOTOKI <motoki@da.jp.nec.com>
Wed, 22 May 2013 06:00:13 +0000 (15:00 +0900)
committerAkihiro MOTOKI <motoki@da.jp.nec.com>
Wed, 22 May 2013 06:00:13 +0000 (15:00 +0900)
draft/man2/recvmmsg.2
draft/man2/sendmmsg.2
draft/man3/if_nameindex.3
draft/man3/if_nametoindex.3
draft/man7/numa.7

draft/man2/recvmmsg.2 [new file with mode: 0644]
draft/man2/sendmmsg.2 [new file with mode: 0644]
draft/man3/if_nameindex.3 [new file with mode: 0644]
draft/man3/if_nametoindex.3 [new file with mode: 0644]
draft/man7/numa.7 [new file with mode: 0644]
po4a/numa/po/ja.po
po4a/socket/po/ja.po
stats/numa
stats/socket
translation_list
untrans.html

diff --git a/draft/man2/recvmmsg.2 b/draft/man2/recvmmsg.2
new file mode 100644 (file)
index 0000000..6b1e1da
--- /dev/null
@@ -0,0 +1,197 @@
+.\" Copyright (C) 2011 by Andi Kleen <andi@firstfloor.org>
+.\" and Copyright (c) 2011 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" %%%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
+.\"
+.\" Syscall added in following commit
+.\"    commit a2e2725541fad72416326798c2d7fa4dafb7d337
+.\"    Author: Arnaldo Carvalho de Melo <acme@redhat.com>
+.\"    Date:   Mon Oct 12 23:40:10 2009 -0700
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH RECVMMSG 2 2012\-12\-24 Linux "Linux Programmer's Manual"
+.SH 名前
+recvmmsg \- 複数のメッセージをソケットから受信する
+.SH 書式
+.nf
+\fB#define _GNU_SOURCE\fP
+\fB#include <sys/socket.h>\fP
+
+\fBint recvmmsg(int \fP\fIsockfd\fP\fB, struct mmsghdr *\fP\fImsgvec\fP\fB, unsigned int \fP\fIvlen\fP\fB,\fP
+.br
+\fB             unsigned int \fP\fIflags\fP\fB, struct timespec *\fP\fItimeout\fP\fB);\fP
+.fi
+.SH 説明
+\fBrecvmmsg\fP() システムコールは \fBrecvmsg\fP(2) の拡張で、
+このシステムコールを使うと一度の呼び出しでソケットから複数のメッセージを受信することができる (アプリケーションによっては性能上のメリットがある)。
+他に \fBrecvmsg\fP(2) から拡張されている点としては、受信操作におけるタイムアウトのサポートがある。
+
+\fIsockfd\fP 引き数は、データを受信するソケットのファイルディスクリプタである。
+
+\fImsgvec\fP 引き数は \fImmsghdr\fP 構造体の配列である。 この配列の大きさは \fIvlen\fP で指定する。
+
+\fImmsghdr\fP 構造体は \fI<sys/socket.h>\fP で次のように定義されている。
+
+.in +4n
+.nf
+struct mmsghdr {
+    struct msghdr msg_hdr;  /* メッセージヘッダ */
+    unsigned int  msg_len;  /* このヘッダで受信されたバイト数 */
+};
+.fi
+.in
+.PP
+\fImsg_hdr\fP フィールドは、 \fBrecvmsg\fP(2) で説明されている \fImsghdr\fP 構造体である。 \fImsg_len\fP
+フィールドは、 このエントリで返されるメッセージのバイト数で、 このヘッダに対して \fBrecvmsg\fP(2) を呼び出した場合の返り値と同じ値が入る。
+
+\fIflags\fP 引き数には複数のフラグを論理和 (OR) で指定できる。 フラグは、 \fBrecvmsg\fP(2)
+で説明されているものに加えて、以下が使用できる。
+.TP 
+\fBMSG_WAITFORONE\fP (Linux 2.6.34 以降)
+最初のメッセージを受信後に \fBMSG_DONTWAIT\fP を有効にする。
+.PP
+\fItimeout\fP 引き数は \fIstruct timespec\fP (\fBclock_gettime\fP(2) 参照) へのポインタで、
+この構造体で受信操作のタイムアウト (秒とナノ秒) を指定する
+(待ち時間はシステムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。 \fItimeout\fPが
+\fINULL\fP の場合、 受信操作は無期限に停止 (block) する。
+
+停止 (blocking) モードの \fBrecvmmsg\fP() の呼び出しは、 \fIvlen\fP
+個のメッセージを受信するか、タイムアウトが満了するまで停止する。 非停止 (nonblocking) モードの呼び出しでは、 読み出し可能なメッセージ
+(最大で \fIvlen\fP 個) を読み出し、 すぐに返る。
+
+\fBrecvmmsg\fP() が返った際には、 \fImsgvec\fP のうちデータが受信された要素には、受信したそれぞれのメッセージの情報が格納されている。
+また、 \fImsg_len\fP には受信したメッセージの大きさが入り、 \fImsg_hdr\fP の各フィールドは \fBrecvmsg\fP(2)
+に書かれている通りに更新される。 呼び出しの返り値は、更新された \fImsgvec\fP の要素数である。
+.SH 返り値
+成功すると、 \fBrecvmmsg\fP() は \fImsgvec\fP に受信されたメッセージ数を返す。 エラーの場合、 \-1 を返し、 \fIerrno\fP
+にエラーを示す値を設定する。
+.SH エラー
+エラーは \fBrecvmsg\fP(2) と同じである。 これに加えて、以下のエラーが起こる場合がある。
+.TP 
+\fBEINVAL\fP
+\fItimeout\fP が無効である。
+.SH バージョン
+\fBrecvmmsg\fP() システムコールは Linux 2.6.33 で追加された。 glibc でのサポートはバージョン 2.12
+以降で利用可能である。
+.SH 準拠
+\fBrecvmmsg\fP() は Linux 固有である。
+.SH 例
+.PP
+以下のプログラムは、 \fBrecvmmsg\fP() を使って複数のメッセージをソケットから受信し、それらを複数のバッファに格納する。
+呼び出しは、すべてのバッファにメッセージが格納されるか、 指定したタイムアウト時間が経過すると返る。
+
+以下のコマンドは、 ランダムな数字が入った UDP データグラムを定期的に生成する。
+.in +4n
+.nf
+
+$\fB while true; do echo $RANDOM > /dev/udp/127.0.0.1/1234; \fP
+\fBsleep 0.25; done\fP
+.fi
+.in
+
+生成されたデータグラムをサンプルアプリケーションが読み出し、以下のような出力が得られる。
+.in +4n
+.nf
+
+$\fB ./a.out\fP
+5 messages received
+1 11782
+2 11345
+3 304
+4 13514
+5 28421
+.fi
+.in
+.SS プログラムのソース
+\&
+.nf
+#define _GNU_SOURCE
+#include <netinet/ip.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/socket.h>
+
+int
+main(void)
+{
+#define VLEN 10
+#define BUFSIZE 200
+#define TIMEOUT 1
+    int sockfd, retval, i;
+    struct sockaddr_in sa;
+    struct mmsghdr msgs[VLEN];
+    struct iovec iovecs[VLEN];
+    char bufs[VLEN][BUFSIZE+1];
+    struct timespec timeout;
+
+    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+    if (sockfd == \-1) {
+        perror("socket()");
+        exit(EXIT_FAILURE);
+    }
+
+    sa.sin_family = AF_INET;
+    sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+    sa.sin_port = htons(1234);
+    if (bind(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == \-1) {
+        perror("bind()");
+        exit(EXIT_FAILURE);
+    }
+
+    memset(msgs, 0, sizeof(msgs));
+    for (i = 0; i < VLEN; i++) {
+        iovecs[i].iov_base         = bufs[i];
+        iovecs[i].iov_len          = BUFSIZE;
+        msgs[i].msg_hdr.msg_iov    = &iovecs[i];
+        msgs[i].msg_hdr.msg_iovlen = 1;
+    }
+
+    timeout.tv_sec = TIMEOUT;
+    timeout.tv_nsec = 0;
+
+    retval = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);
+    if (retval == \-1) {
+        perror("recvmmsg()");
+        exit(EXIT_FAILURE);
+    }
+
+    printf("%d messages received\en", retval);
+    for (i = 0; i < retval; i++) {
+        bufs[i][msgs[i].msg_len] = 0;
+        printf("%d %s", i+1, bufs[i]);
+    }
+    exit(EXIT_SUCCESS);
+}
+.fi
+.SH 関連項目
+\fBclock_gettime\fP(2), \fBrecvmsg\fP(2), \fBsendmmsg\fP(2), \fBsendmsg\fP(2),
+\fBsocket\fP(2), \fBsocket\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
diff --git a/draft/man2/sendmmsg.2 b/draft/man2/sendmmsg.2
new file mode 100644 (file)
index 0000000..cb5dadc
--- /dev/null
@@ -0,0 +1,172 @@
+.\" Copyright (c) 2012 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\" with some material from a draft by
+.\" Stephan Mueller <stephan.mueller@atsec.com>
+.\" in turn based on Andi Kleen's recvmmsg.2 page.
+.\"
+.\" %%%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 SENDMMSG 2 2012\-12\-16 Linux "Linux Programmer's Manual"
+.SH 名前
+sendmmsg \- 複数のメッセージをソケットへ送信する
+.SH 書式
+.nf
+\fB#define _GNU_SOURCE\fP
+\fB#include <sys/socket.h>\fP
+
+\fBint sendmmsg(int \fP\fIsockfd\fP\fB, struct mmsghdr *\fP\fImsgvec\fP\fB, unsigned int \fP\fIvlen\fP\fB,\fP
+\fB             unsigned int \fP\fIflags\fP\fB);\fP
+.fi
+.SH 説明
+.\" See commit 228e548e602061b08ee8e8966f567c12aa079682
+\fBsendmmsg\fP() システムコールは \fBsendmsg\fP(2) の拡張で、
+このシステムコールを使うと一度の呼び出しでソケットに複数のメッセージを送信できる (アプリケーションによっては性能上のメリットがある)。
+
+\fIsockfd\fP 引き数は、 データを送信するソケットのファイルディスクリプタである。
+
+\fImsgvec\fP 引き数は \fImmsghdr\fP 構造体の配列である。 この配列の大きさは \fIvlen\fP で指定する。
+
+\fImmsghdr\fP 構造体は \fI<sys/socket.h>\fP で次のように定義されている。
+
+.in +4n
+.nf
+struct mmsghdr {
+    struct msghdr msg_hdr;  /* メッセージヘッダ */
+    unsigned int  msg_len;  /* 送信されたバイト数 */
+};
+.fi
+.in
+.PP
+\fImsg_hdr\fP フィールドは、 \fBsendmsg\fP(2) で説明されている \fImsghdr\fP 構造体である。 \fImsg_len\fP
+フィールドは \fImsg_hdr\fP から送信されたメッセージのバイト数を返すのに使用される。 この値は \fBsendmsg\fP(2)
+をこのヘッダに対して呼び出した場合の返り値と同じである。
+
+\fIflags\fP 引き数には複数のフラグを論理和 (OR) で指定できる。フラグは \fBsendmsg\fP(2) と同じである。
+
+停止 (blocking) モードの \fBsendmmsg\fP() の呼び出しは、 \fIvlen\fP 個のメッセージが送信されるまで停止する。 非停止
+(nonblocking) モードの呼び出しでは、 送信できるだけのメッセージ (最大で \fIvlen\fP 個) を送信し、 すぐに返る。
+
+\fBsendmmsg\fP() が返った際には、 \fImsgvec\fP の送信が行われた要素の \fImsg_len\fP フィールドは、対応する
+\fImsg_hdr\fP から送信されたバイト数が入っている。 呼び出しの返り値は、更新された \fImsgvec\fP の要素数である。
+.SH 返り値
+成功すると、 \fBsendmmsg\fP() は \fImsgvec\fP から送信されたメッセージ数を返す。 返り値が \fIvlen\fP よりも小さい場合、
+呼び出した側では再度 \fBsendmmsg\fP を呼び出して残りのメッセージを送信することができる。
+
+エラーの場合、 \-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
+.SH エラー
+.\" commit 728ffb86f10873aaf4abd26dde691ee40ae731fe
+.\"     ... only return an error if no datagrams could be sent.
+.\"     If less than the requested number of messages were sent, the application
+.\"     must retry starting at the first failed one and if the problem is
+.\"     persistent the error will be returned.
+.\"
+.\"     This matches the behaviour of other syscalls like read/write - it
+.\"     is not an error if less than the requested number of elements are sent.
+エラーは \fBsendmsg\fP(2) と同じである。 エラーが返されるのは、 データグラムが全く送信できなかった場合のみである。
+.SH バージョン
+\fBsendmmsg\fP() システムコールは Linux 3.0 で追加された。 glibc でのサポートはバージョン 2.14 で追加された。
+.SH 準拠
+\fBsendmmsg\fP() は Linux 固有である。
+.SH 注意
+.\" commit 98382f419f32d2c12d021943b87dea555677144b
+.\"     net: Cap number of elements for sendmmsg
+.\"
+.\"     To limit the amount of time we can spend in sendmmsg, cap the
+.\"     number of elements to UIO_MAXIOV (currently 1024).
+.\"
+.\"     For error handling an application using sendmmsg needs to retry at
+.\"     the first unsent message, so capping is simpler and requires less
+.\"     application logic than returning EINVAL.
+\fIvlen\fP に指定できる値の最大値は \fBUIO_MAXIOV\fP (1024) である。
+.SH 例
+以下の例では、 \fBsendmmsg\fP() を使って、 一度のシステムコールで、 \fIonetwo\fP と \fIthree\fP を二つの別々の UDP
+データグラムで送信する。 一つ目のデータグラムの内容は、二つのバッファから取得される。
+
+.nf
+#define _GNU_SOURCE
+#include <netinet/ip.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+int
+main(void)
+{
+    int sockfd;
+    struct sockaddr_in sa;
+    struct mmsghdr msg[2];
+    struct iovec msg1[2], msg2;
+    int retval;
+
+    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+    if (sockfd == \-1) {
+        perror("socket()");
+        exit(EXIT_FAILURE);
+    }
+
+    sa.sin_family = AF_INET;
+    sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+    sa.sin_port = htons(1234);
+    if (connect(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == \-1) {
+        perror("connect()");
+        exit(EXIT_FAILURE);
+    }
+
+    memset(msg1, 0, sizeof(msg1));
+    msg1[0].iov_base = "one";
+    msg1[0].iov_len = 3;
+    msg1[1].iov_base = "two";
+    msg1[1].iov_len = 3;
+
+    memset(&msg2, 0, sizeof(msg2));
+    msg2.iov_base = "three";
+    msg2.iov_len = 5;
+
+    memset(msg, 0, sizeof(msg));
+    msg[0].msg_hdr.msg_iov = msg1;
+    msg[0].msg_hdr.msg_iovlen = 2;
+
+    msg[1].msg_hdr.msg_iov = &msg2;
+    msg[1].msg_hdr.msg_iovlen = 1;
+
+    retval = sendmmsg(sockfd, msg, 2, 0);
+    if (retval == \-1)
+        perror("sendmmsg()");
+    else
+        printf("%d messages sent\en", retval);
+
+    exit(0);
+}
+.fi
+.SH 関連項目
+\fBrecvmmsg\fP(2), \fBsendmsg\fP(2), \fBsocket\fP(2), \fBsocket\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
diff --git a/draft/man3/if_nameindex.3 b/draft/man3/if_nameindex.3
new file mode 100644 (file)
index 0000000..569a625
--- /dev/null
@@ -0,0 +1,120 @@
+.\" Copyright (c) 2012 YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
+.\" and Copyright (c) 2012 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" %%%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 IF_NAMEINDEX 3 2012\-11\-21 GNU "Linux Programmer's Manual"
+.SH 名前
+if_nameindex, if_freenameindex \- ネットワークインターフェースの名前とインデックスを取得する
+.SH 書式
+.nf
+\fB#include <net/if.h>\fP
+.sp
+\fBstruct if_nameindex *if_nameindex(void);\fP
+\fBvoid if_freenameindex(struct if_nameindex *\fP\fIptr\fP\fB);\fP
+.fi
+.SH 説明
+\fBif_nameindex\fP() 関数は \fIif_nameindex\fP 構造体の配列を返す。
+各構造体にはローカルシステムのネットワークインターフェースのいずれかの情報が入る。 \fIif_nameindex\fP
+構造体には少なくとも以下のフィールドがある。
+.sp
+.in +4n
+.nf
+    unsigned int if_index; /* インターフェースのインデックス (1, 2, ...) */
+    char        *if_name;  /* NULL 終端された名前 ("eth0" など) */
+.fi
+.in
+.PP
+\fIif_index\fP フィールドにはインターフェースのインデックスが入る。 \fIifa_name\fP フィールドは NULL
+終端されたインターフェース名を指す。 配列の最後は、 \fIif_index\fP が 0 で \fIifa_name\fP が NULL のエントリで示される。
+.PP
+\fBif_nameindex\fP() が返すデータ構造体は動的に確保される。 必要なくなった際には \fBif_freenameindex\fP()
+で解放すべきである。
+.SH 返り値
+成功した場合には \fBif_nameindex\fP() は配列へのポインタを返す。エラー時には NULL ポインタが返され、 \fIerrno\fP
+が適切に設定される。
+.SH エラー
+\fBif_nameindex\fP() が失敗した場合には以下の \fIerrno\fP が設定される。
+.TP 
+\fBENOBUFS\fP
+利用可能なリソースが十分にない。
+.PP
+\fBif_nameindex\fP() は、 \fBsocket\fP(2), \fBbind\fP(2), \fBioctl\fP(2),
+\fBgetsockname\fP(2), \fBrecvmsg\fP(2), \fBsendto\fP(2), \fBmalloc\fP(3)
+に対して規定されているエラーのいずれかで失敗する場合がある。
+.SH バージョン
+\fBif_nameindex\fP() 関数は glibc 2.1 で初めて登場したが、 glibc 2.3.4 より前のバージョンの実装では IPv4
+アドレスを持つインターフェースのみをサポートしていた。 IPv4 アドレスを持たないインターフェースがサポートされているのは、 netlink
+をサポートするカーネルにおいてのみである。
+.SH 準拠
+RFC\ 3493, POSIX.1\-2001.
+
+この関数は BSDi 初めて登場した。
+.SH 例
+以下のプログラムはこのページで説明した関数の使い方を示している。このプログラムが生成する出力は以下のようになる。
+.in +4n
+.nf
+$ \fB./a.out\fP\fI
+1: lo
+2: wlan0
+3: em1\fP
+.fi
+.in
+.SS プログラムのソース
+.nf
+#include <net/if.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int argc, char *argv[])
+{
+    struct if_nameindex *if_ni, *i;
+
+    if_ni = if_nameindex();
+    if (if_ni == NULL) {
+        perror("if_nameindex");
+        exit(EXIT_FAILURE);
+    }
+
+    for (i = if_ni; ! (i\->if_index == 0 && i\->if_name == NULL); i++)
+        printf("%u: %s\en", i\->if_index, i\->if_name);
+
+    if_freenameindex(if_ni);
+
+    exit(EXIT_SUCCESS);
+}
+.fi
+.SH 関連項目
+\fBgetsockopt\fP(2), \fBsetsockopt\fP(2), \fBgetifaddrs\fP(3), \fBif_indextoname\fP(3),
+\fBif_nametoindex\fP(3), \fBifconfig\fP(8)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
diff --git a/draft/man3/if_nametoindex.3 b/draft/man3/if_nametoindex.3
new file mode 100644 (file)
index 0000000..5190660
--- /dev/null
@@ -0,0 +1,70 @@
+.\" Copyright (c) 2012 YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
+.\"
+.\" %%%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 IF_NAMETOINDEX 3 2012\-12\-14 GNU "Linux Programmer's Manual"
+.SH 名前
+if_nametoindex, if_indextoname \- ネットワークインターフェースの名前とインデックスのマッピングを行う
+.SH 書式
+.nf
+\fB#include <net/if.h>\fP
+.sp
+\fBunsigned int if_nametoindex(const char *\fP\fIifname\fP\fB);\fP
+.sp
+\fBchar *if_indextoname(unsigned int ifindex, char *\fP\fIifname\fP\fB);\fP
+.fi
+.SH 説明
+\fBif_nametoindex\fP() 関数は、 名前が \fIifname\fP のネットワークインターフェースのインデックスを返す。
+
+\fBif_indextoname\fP() 関数は、 インターフェースのインデックスが \fIifindex\fP
+に対応するネットワークインターフェースの名前を返す。 名前は \fIifname\fP が指すバッファに格納される。 バッファは少なくとも
+\fBIF_NAMESIZE\fP バイトの領域が必要である。
+.SH 返り値
+成功した場合、 \fBif_nametoindex\fP() はネットワークインターフェースのインデックス番号を返す。エラーの場合、 0 を返し、
+\fIerrno\fP を適切に設定にする。
+
+成功した場合には \fBif_indextoname\fP() は \fIifname\fP を返す。エラー時には NULL が返され、 \fIerrno\fP
+が適切に設定される。
+.SH エラー
+\fBif_indextoname\fP() は以下の \fIerrno\fP で失敗する場合がある。
+.TP 
+\fBENXIO\fP
+インデックスに対応するインターフェースがない。
+.PP
+\fBif_nametoindex\fP() と \fBif_indextoname\fP() は、 \fBsocket\fP(2) と \fBioctl\fP(2)
+に対して規定されているエラーのいずれかで失敗する場合がある。
+.SH 準拠
+RFC\ 3493, POSIX.1\-2001.
+
+この関数は BSDi 初めて登場した。
+.SH 関連項目
+\fBgetifaddrs\fP(3), \fBif_nameindex\fP(3), \fBifconfig\fP(8)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
diff --git a/draft/man7/numa.7 b/draft/man7/numa.7
new file mode 100644 (file)
index 0000000..8d2fa0e
--- /dev/null
@@ -0,0 +1,146 @@
+.\" Copyright (c) 2008, Linux Foundation, written by Michael Kerrisk
+.\"     <mtk.manpages@gmail.com>
+.\" and Copyright 2003,2004 Andi Kleen, SuSE Labs.
+.\" numa_maps material Copyright (c) 2005 Silicon Graphics Incorporated.
+.\"     Christoph Lameter, <cl@linux-foundation.org>.
+.\"
+.\" %%%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 NUMA 7 2012\-08\-05 Linux "Linux Programmer's Manual"
+.SH 名前
+numa \- 非対称型メモリアーキテクチャの概要
+.SH 説明
+非対称型メモリアクセス (Non\-Uniform Memory Access; NUMA) は、
+メモリが複数のメモリノードに分割されているマルチプロセッサシステム
+のことである。メモリノードへのアクセス時間は、アクセス元の CPU と
+アクセス先のノードの相対的な位置関係に依存する
+(これに対し、対称型マルチプロセッサシステムでは、どの CPU から
+どのメモリへのアクセス時間も同じである)。
+通常は、 NUMA システムの各 CPU にはローカルのメモリノードがあり、
+そのメモリノードには、他の CPU のローカルノードや全ての CPU で
+共有されるバス上のメモリよりも早くアクセスすることができる。
+.SS "NUMA システムコール"
+Linux カーネルには、次に示す NUMA 関連のシステムコールが実装されている:
+\fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBmigrate_pages\fP(2),
+\fBmove_pages\fP(2), \fBset_mempolicy\fP(2).
+ただし、アプリケーションは通常は \fIlibnuma\fP が提供するインターフェース
+を使用すべきである。下記の「ライブラリによるサポート」を参照。
+.SS "/proc/[number]/numa_maps (Linux 2.6.14 以降)"
+.\" See also Changelog-2.6.14
+このファイルは、プロセスの NUMA メモリポリシーと割り当てに関する
+情報を表示する。
+
+各行に、そのプロセスが使用しているメモリ領域に関する情報が表示される。その他の情報 \(em
+そのメモリ領域に適用されているメモリポリシーや、そのページがどのノード上に割り当てられているか、など \(em もあわせて表示される。
+
+\fInuma_maps\fP は読み出し専用のファイルである。 \fI/proc/<pid>/numa_maps\fP から読み出しが行われると、
+カーネルはそのプロセスの仮想アドレス空間をスキャンし、 メモリの使用状況を報告する。
+プロセスのメモリ領域の情報が 1 行に 1 領域で表示される。
+
+各行の最初のフィールドはメモリ領域の開始アドレスを示す。 このフィールドは \fI/proc/<pid>/maps\fP
+ファイルの内容と対応している。 \fI/proc/<pid>/maps\fP
+には、メモリ領域の末尾のアドレスや、アクセス許可や共有といった他の情報も含まれる。
+
+2 番目のフィールドは、 そのメモリ領域に現在適用されているメモリポリシーを示す。 適用されているポリシーは、
+必ずしもそのプロセスがこのメモリ領域に対して設定したポリシーとは限らない点に注意すること。
+特に、
+プロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領域に適用されるポリシーはプロセスのポリシーとなり、それが「デフォルト」ポリシーとなる場合もあればそうでない場合もある。
+
+行の残りの部分には、そのメモリ領域に割り当てられたページに関する情報が入る。以下に詳細を示す。
+.TP 
+\fIN<node>=<nr_pages>\fP
+\fI<node>\fP に割り当てられているページ数。 \fI<nr_pages>\fP には、
+そのプロセスが現在マッピングしているページだけが含まれる。 ページの移動やメモリの再利用により、 このメモリ領域に関連付けられているが、
+一時的にマッピングされていないページが存在する場合がある。 プロセスがそれらのページを参照しようとした後には、 これらのページは再び現れる可能性がある。
+メモリ領域が共有メモリやファイルマッピングの場合には、 そのメモリ領域内に別のページを他のプロセスがマッピングしている場合もある。
+.TP 
+\fIfile=<filename>\fP
+そのメモリ領域に関連付けられているファイル。 ファイルがプライベート (非公開) でマッピングされている場合、 書き込みアクセスがあると、
+このメモリ領域に書き込み時コピー (Copy\-On\-Write) ページが生成されることがある。 これらのページは無名ページ (anonymous
+page) として表示される。
+.TP 
+\fIheap\fP
+ヒープに使用されているメモリ範囲。
+.TP 
+\fIstack\fP
+スタックに使用されているメモリ範囲。
+.TP 
+\fIhuge\fP
+ヒュージメモリの範囲。表示されるページ数は、
+通常の大きさのページではなく、ヒュージページの数である。
+.TP 
+\fIanon=<pages>\fP
+メモリ範囲内の無名ページ (anonymous page) の数。
+.TP 
+\fIdirty=<pages>\fP
+dirty (変更された) ページの数。
+.TP 
+\fImapped=<pages>\fP
+マッピングされているページ数。 \fIdirty\fP および \fIanon\fP のページ数と異なる値の場合に表示される。
+.TP 
+\fImapmax=<count>\fP
+スキャン中に検出した mapcount (一つのページをマッピングしているプロセス数) の最大値。 この値は、
+そのメモリ領域でどの程度の共有が行われているかの指標として使うことができる。
+.TP 
+\fIswapcache=<count>\fP
+スワップデバイスに対応するエントリーが存在するページ数。
+.TP 
+\fIactive=<pages>\fP
+アクティブリストに入っているページ数。 このフィールドが表示されるのは、
+値がこのメモリ領域のページ数と異なる場合だけである。このフィールドが表示されるということは、 このメモリ領域に、まもなくスワッパ (swapper)
+によりこの領域から削除される可能性がある inactive なページが存在することを意味する。
+.TP 
+\fIwriteback=<pages>\fP
+現在ディスクに書き出されているページ数。
+.SH 準拠
+NUMA インターフェースについて規定している標準はない。
+.SH 注意
+Linux の NUMA システムコールと \fI/proc\fP インターフェースは、カーネルが
+設定オプション \fBCONFIG_NUMA\fP を有効にして作成されている場合のみ、利用
+可能である。
+.SS ライブラリによるサポート
+システムコールの定義を得るには \fI\-lnuma\fP でリンクすること。
+\fIlibnuma\fP と必要なヘッダファイル \fI<numaif.h>\fP は
+\fInumactl\fP パッケージで提供されている。
+
+ただし、アプリケーションはこれらのシステムコールを直接利用すべきでない。
+推奨される方法は、\fInumactl\fP パッケージの \fBnuma\fP(3) の関数群が提供する
+高レベルインターフェースの利用である。 \fInumactl\fP パッケージは
+.UR ftp://oss.sgi.com\:/www\:/projects\:/libnuma\:/download/
+.UE
+で入手できる。
+このパッケージが収録されている Linux ディストリビューションもある。
+ディストリビューションによっては、開発用のライブラリとヘッダファイルは
+別パッケージ \fInumactl\-devel\fP で提供されている。
+.SH 関連項目
+\fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBmove_pages\fP(2), \fBset_mempolicy\fP(2),
+\fBnuma\fP(3), \fBcpuset\fP(7), \fBnumactl\fP(8)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。
index 757f535..55d071b 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "POT-Creation-Date: 2013-04-30 20:29+0900\n"
-"PO-Revision-Date: 2013-05-02 23:12+0900\n"
+"PO-Revision-Date: 2013-05-17 00:09+0900\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -1705,7 +1705,7 @@ msgid ""
 "Each line contains information about a memory range used by the process, "
 "displaying\\(emamong other information\\(emthe effective memory policy for "
 "that memory range and on which nodes the pages have been allocated."
-msgstr ""
+msgstr "各行に、そのプロセスが使用しているメモリ領域に関する情報が表示される。その他の情報 \\(em そのメモリ領域に適用されているメモリポリシーや、そのページがどのノード上に割り当てられているか、など \\(em もあわせて表示される。"
 
 #. type: Plain text
 #: build/C/man7/numa.7:70
@@ -1715,6 +1715,8 @@ msgid ""
 "report how memory is used.  One line is displayed for each unique memory "
 "range of the process."
 msgstr ""
+"I<numa_maps> は読み出し専用のファイルである。 I</proc/E<lt>pidE<gt>/numa_maps> から読み出しが行われると、 カーネルはそのプロセスの仮想アドレス空間をスキャンし、 メモリの使用状況を報告する。\n"
+"プロセスのメモリ領域の情報が 1 行に 1 領域で表示される。"
 
 #. type: Plain text
 #: build/C/man7/numa.7:77
@@ -1723,7 +1725,7 @@ msgid ""
 "range.  This field allows a correlation with the contents of the I</proc/"
 "E<lt>pidE<gt>/maps> file, which contains the end address of the range and "
 "other information, such as the access permissions and sharing."
-msgstr ""
+msgstr "各行の最初のフィールドはメモリ領域の開始アドレスを示す。 このフィールドは I</proc/E<lt>pidE<gt>/maps> ファイルの内容と対応している。 I</proc/E<lt>pidE<gt>/maps> には、メモリ領域の末尾のアドレスや、アクセス許可や共有といった他の情報も含まれる。"
 
 #. type: Plain text
 #: build/C/man7/numa.7:85
@@ -1735,13 +1737,15 @@ msgid ""
 "for that range will be the process policy, which may or may not be \"default"
 "\"."
 msgstr ""
+"2 番目のフィールドは、 そのメモリ領域に現在適用されているメモリポリシーを示す。 適用されているポリシーは、 必ずしもそのプロセスがこのメモリ領域に対して設定したポリシーとは限らない点に注意すること。\n"
+"特に、 プロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領域に適用されるポリシーはプロセスのポリシーとなり、それが「デフォルト」ポリシーとなる場合もあればそうでない場合もある。"
 
 #. type: Plain text
 #: build/C/man7/numa.7:88
 msgid ""
 "The rest of the line contains information about the pages allocated in the "
 "memory range, as follows:"
-msgstr ""
+msgstr "行の残りの部分には、そのメモリ領域に割り当てられたページに関する情報が入る。以下に詳細を示す。"
 
 #. type: TP
 #: build/C/man7/numa.7:88
@@ -1759,7 +1763,7 @@ msgid ""
 "attempted to reference them.  If the memory range represents a shared memory "
 "area or file mapping, other processes may currently have additional pages "
 "mapped in a corresponding memory range."
-msgstr ""
+msgstr "I<E<lt>nodeE<gt>> に割り当てられているページ数。 I<E<lt>nr_pagesE<gt>> には、 そのプロセスが現在マッピングしているページだけが含まれる。 ページの移動やメモリの再利用により、 このメモリ領域に関連付けられているが、 一時的にマッピングされていないページが存在する場合がある。 プロセスがそれらのページを参照しようとした後には、 これらのページは再び現れる可能性がある。 メモリ領域が共有メモリやファイルマッピングの場合には、 そのメモリ領域内に別のページを他のプロセスがマッピングしている場合もある。"
 
 #. type: TP
 #: build/C/man7/numa.7:101
@@ -1773,7 +1777,7 @@ msgid ""
 "The file backing the memory range.  If the file is mapped as private, write "
 "accesses may have generated COW (Copy-On-Write) pages in this memory range.  "
 "These pages are displayed as anonymous pages."
-msgstr ""
+msgstr "そのメモリ領域に関連付けられているファイル。 ファイルがプライベート (非公開) でマッピングされている場合、 書き込みアクセスがあると、 このメモリ領域に書き込み時コピー (Copy-On-Write) ページが生成されることがある。 これらのページは無名ページ (anonymous page) として表示される。"
 
 #. type: TP
 #: build/C/man7/numa.7:107
@@ -1844,7 +1848,7 @@ msgstr "I<mapped=E<lt>pagesE<gt>>"
 #: build/C/man7/numa.7:130
 msgid ""
 "Total number of mapped pages, if different from I<dirty> and I<anon> pages."
-msgstr ""
+msgstr "マッピングされているページ数。 I<dirty> および I<anon> のページ数と異なる値の場合に表示される。"
 
 #. type: TP
 #: build/C/man7/numa.7:130
@@ -1858,7 +1862,7 @@ msgid ""
 "Maximum mapcount (number of processes mapping a single page) encountered "
 "during the scan.  This may be used as an indicator of the degree of sharing "
 "occurring in a given memory range."
-msgstr ""
+msgstr "スキャン中に検出した mapcount (一つのページをマッピングしているプロセス数) の最大値。 この値は、 そのメモリ領域でどの程度の共有が行われているかの指標として使うことができる。"
 
 #. type: TP
 #: build/C/man7/numa.7:136
@@ -1869,7 +1873,7 @@ msgstr "I<swapcache=E<lt>countE<gt>>"
 #. type: Plain text
 #: build/C/man7/numa.7:139
 msgid "Number of pages that have an associated entry on a swap device."
-msgstr ""
+msgstr "スワップデバイスに対応するエントリーが存在するページ数。"
 
 #. type: TP
 #: build/C/man7/numa.7:139
@@ -1884,7 +1888,7 @@ msgid ""
 "different from the number of pages in this range.  This means that some "
 "inactive pages exist in the memory range that may be removed from memory by "
 "the swapper soon."
-msgstr ""
+msgstr "アクティブリストに入っているページ数。 このフィールドが表示されるのは、 値がこのメモリ領域のページ数と異なる場合だけである。このフィールドが表示されるということは、 このメモリ領域に、まもなくスワッパ (swapper) によりこの領域から削除される可能性がある inactive なページが存在することを意味する。"
 
 #. type: TP
 #: build/C/man7/numa.7:145
@@ -1895,7 +1899,7 @@ msgstr "I<writeback=E<lt>pagesE<gt>>"
 #. type: Plain text
 #: build/C/man7/numa.7:148
 msgid "Number of pages that are currently being written out to disk."
-msgstr ""
+msgstr "現在ディスクに書き出されているページ数。"
 
 #. type: Plain text
 #: build/C/man7/numa.7:150
@@ -2247,24 +2251,3 @@ msgid ""
 msgstr ""
 "B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<numa>(3), "
 "B<cpuset>(7), B<numa>(7), B<numactl>(8)"
-
-#~ msgid "2012-07-13"
-#~ msgstr "2012-07-13"
-
-#~ msgid "2010-11-01"
-#~ msgstr "2010-11-01"
-
-#~ msgid ""
-#~ "B<get_mempolicy>(2), B<mbind>(2), B<set_mempolicy>(2), B<numa>(3), "
-#~ "B<numa_maps>(5), B<cpuset>(7), B<numa>(7), B<migratepages>(8), "
-#~ "B<numa_stat>(8);"
-#~ msgstr ""
-#~ "B<get_mempolicy>(2), B<mbind>(2), B<set_mempolicy>(2), B<numa>(3), "
-#~ "B<numa_maps>(5), B<cpuset>(7), B<numa>(7), B<migratepages>(8), "
-#~ "B<numa_stat>(8);"
-
-#~ msgid "the kernel source file I<Documentation/vm/page_migration>."
-#~ msgstr "カーネルのソースファイル I<Documentation/vm/page_migration>。"
-
-#~ msgid "2008-06-03"
-#~ msgstr "2008-06-03"
index 5d288d5..88f2e14 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "POT-Creation-Date: 2013-04-30 20:30+0900\n"
-"PO-Revision-Date: 2013-05-06 17:25+0900\n"
+"PO-Revision-Date: 2013-05-18 02:27+0900\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -1791,7 +1791,7 @@ msgstr "GNU"
 #. type: Plain text
 #: build/C/man3/getifaddrs.3:39
 msgid "getifaddrs, freeifaddrs - get interface addresses"
-msgstr ""
+msgstr "getifaddrs, freeifaddrs - インターフェースのアドレスを取得する"
 
 #. type: Plain text
 #: build/C/man3/getifaddrs.3:43
@@ -1938,7 +1938,7 @@ msgid ""
 "B<getifaddrs>()  may fail and set I<errno> for any of the errors specified "
 "for B<socket>(2), B<bind>(2), B<getsockname>(2), B<recvmsg>(2), B<sendto>"
 "(2), B<malloc>(3), or B<realloc>(3)."
-msgstr ""
+msgstr "B<getifaddrs>()  may fail and set I<errno> for any of the errors specified for B<socket>(2), B<bind>(2), B<getsockname>(2), B<recvmsg>(2), B<sendto>(2), B<malloc>(3), or B<realloc>(3)."
 
 #. type: Plain text
 #: build/C/man3/getifaddrs.3:170
@@ -2018,7 +2018,7 @@ msgstr ""
 #: build/C/man2/recvmmsg.2:206
 #, no-wrap
 msgid "Program source"
-msgstr ""
+msgstr "プログラムのソース"
 
 #. type: Plain text
 #: build/C/man3/getifaddrs.3:240
@@ -2468,7 +2468,7 @@ msgstr ""
 #: build/C/man3/if_nameindex.3:26
 #, no-wrap
 msgid "IF_NAMEINDEX"
-msgstr ""
+msgstr "IF_NAMEINDEX"
 
 #. type: TH
 #: build/C/man3/if_nameindex.3:26
@@ -2480,7 +2480,7 @@ msgstr "2012-11-21"
 #: build/C/man3/if_nameindex.3:29
 msgid ""
 "if_nameindex, if_freenameindex - get network interface names and indexes"
-msgstr ""
+msgstr "if_nameindex, if_freenameindex - ネットワークインターフェースの名前とインデックスを取得する"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:32 build/C/man3/if_nametoindex.3:32
@@ -2495,6 +2495,8 @@ msgid ""
 "B<struct if_nameindex *if_nameindex(void);>\n"
 "B<void if_freenameindex(struct if_nameindex *>I<ptr>B<);>\n"
 msgstr ""
+"B<struct if_nameindex *if_nameindex(void);>\n"
+"B<void if_freenameindex(struct if_nameindex *>I<ptr>B<);>\n"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:46
@@ -2503,7 +2505,7 @@ msgid ""
 "structures, each containing information about one of the network interfaces "
 "on the local system.  The I<if_nameindex> structure contains at least the "
 "following entries:"
-msgstr ""
+msgstr "B<if_nameindex>() 関数は I<if_nameindex> 構造体の配列を返す。 各構造体にはローカルシステムのネットワークインターフェースのいずれかの情報が入る。 I<if_nameindex> 構造体には少なくとも以下のフィールドがある。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:51
@@ -2512,6 +2514,8 @@ msgid ""
 "    unsigned int if_index; /* Index of interface (1, 2, ...) */\n"
 "    char        *if_name;  /* Null-terminated name (\"eth0\", etc.) */\n"
 msgstr ""
+"    unsigned int if_index; /* インターフェースのインデックス (1, 2, ...) */\n"
+"    char        *if_name;  /* NULL 終端された名前 (\"eth0\" など) */\n"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:65
@@ -2519,14 +2523,14 @@ msgid ""
 "The I<if_index> field contains the interface index.  The I<ifa_name> field "
 "points to the null-terminated interface name.  The end of the array is "
 "indicated by entry with I<if_index> set to zero and I<ifa_name> set to NULL."
-msgstr ""
+msgstr "I<if_index> フィールドにはインターフェースのインデックスが入る。 I<ifa_name> フィールドは NULL 終端されたインターフェース名を指す。 配列の最後は、 I<if_index> が 0 で I<ifa_name> が NULL のエントリで示される。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:71
 msgid ""
 "The data structure returned by B<if_nameindex>()  is dynamically allocated "
 "and should be freed using B<if_freenameindex>()  when no longer needed."
-msgstr ""
+msgstr "B<if_nameindex>() が返すデータ構造体は動的に確保される。 必要なくなった際には B<if_freenameindex>() で解放すべきである。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:78
@@ -2538,7 +2542,7 @@ msgstr "成功した場合には B<if_nameindex>() は配列へのポインタ
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:83
 msgid "B<if_nameindex>()  may fail and set I<errno> if:"
-msgstr ""
+msgstr "B<if_nameindex>() が失敗した場合には以下の I<errno> が設定される。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:86
@@ -2551,7 +2555,7 @@ msgid ""
 "B<if_nameindex>()  may also fail for any of the errors specified for "
 "B<socket>(2), B<bind>(2), B<ioctl>(2), B<getsockname>(2), B<recvmsg>(2), "
 "B<sendto>(2), or B<malloc>(3)."
-msgstr ""
+msgstr "B<if_nameindex>() は、 B<socket>(2), B<bind>(2), B<ioctl>(2), B<getsockname>(2), B<recvmsg>(2), B<sendto>(2), B<malloc>(3) に対して規定されているエラーのいずれかで失敗する場合がある。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:104
@@ -2560,7 +2564,7 @@ msgid ""
 "glibc 2.3.4, the implementation supported only interfaces with IPv4 "
 "addresses.  Support of interfaces that don't have IPv4 addresses is "
 "available only on kernels that support netlink."
-msgstr ""
+msgstr "B<if_nameindex>() 関数は glibc 2.1 で初めて登場したが、 glibc 2.3.4 より前のバージョンの実装では IPv4 アドレスを持つインターフェースのみをサポートしていた。 IPv4 アドレスを持たないインターフェースがサポートされているのは、 netlink をサポートするカーネルにおいてのみである。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:106 build/C/man3/if_nametoindex.3:87
@@ -2577,7 +2581,7 @@ msgstr "この関数は BSDi 初めて登場した。"
 msgid ""
 "The program below demonstrates the use of the functions described on this "
 "page.  An example of the output this program might produce is the following:"
-msgstr ""
+msgstr "以下のプログラムはこのページで説明した関数の使い方を示している。このプログラムが生成する出力は以下のようになる。"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:118
@@ -2588,6 +2592,10 @@ msgid ""
 "2: wlan0\n"
 "3: em1>\n"
 msgstr ""
+"$ B<./a.out>I<\n"
+"1: lo\n"
+"2: wlan0\n"
+"3: em1>\n"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:126
@@ -2640,12 +2648,14 @@ msgid ""
 "    for (i = if_ni; ! (i-E<gt>if_index == 0 && i-E<gt>if_name == NULL); i++)\n"
 "        printf(\"%u: %s\\en\", i-E<gt>if_index, i-E<gt>if_name);\n"
 msgstr ""
+"    for (i = if_ni; ! (i-E<gt>if_index == 0 && i-E<gt>if_name == NULL); i++)\n"
+"        printf(\"%u: %s\\en\", i-E<gt>if_index, i-E<gt>if_name);\n"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:142
 #, no-wrap
 msgid "    if_freenameindex(if_ni);\n"
-msgstr ""
+msgstr "    if_freenameindex(if_ni);\n"
 
 #. type: Plain text
 #: build/C/man3/if_nameindex.3:145 build/C/man2/select.2:573
@@ -2683,26 +2693,26 @@ msgstr "2012-12-14"
 msgid ""
 "if_nametoindex, if_indextoname - mappings between network interface names "
 "and indexes"
-msgstr ""
+msgstr "if_nametoindex, if_indextoname - ネットワークインターフェースの名前とインデックスのマッピングを行う"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:34
 #, no-wrap
 msgid "B<unsigned int if_nametoindex(const char *>I<ifname>B<);>\n"
-msgstr ""
+msgstr "B<unsigned int if_nametoindex(const char *>I<ifname>B<);>\n"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:36
 #, no-wrap
 msgid "B<char *if_indextoname(unsigned int ifindex, char *>I<ifname>B<);>\n"
-msgstr ""
+msgstr "B<char *if_indextoname(unsigned int ifindex, char *>I<ifname>B<);>\n"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:43
 msgid ""
 "The B<if_nametoindex>()  function returns the index of the network interface "
 "corresponding to the name I<ifname>."
-msgstr ""
+msgstr "B<if_nametoindex>() 関数は、 名前が I<ifname> のネットワークインターフェースのインデックスを返す。"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:54
@@ -2711,7 +2721,7 @@ msgid ""
 "corresponding to the interface index I<ifindex>.  The name is placed in the "
 "buffer pointed to by I<ifname>.  The buffer must allow for the storage of at "
 "least B<IF_NAMESIZE> bytes."
-msgstr ""
+msgstr "B<if_indextoname>() 関数は、 インターフェースのインデックスが I<ifindex> に対応するネットワークインターフェースの名前を返す。 名前は I<ifname> が指すバッファに格納される。 バッファは少なくとも B<IF_NAMESIZE> バイトの領域が必要である。"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:61
@@ -2730,7 +2740,7 @@ msgstr "成功した場合には B<if_indextoname>() は I<ifname> を返す。
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:74
 msgid "B<if_indextoname>()  may fail and set I<errno> if:"
-msgstr ""
+msgstr "B<if_indextoname>() は以下の I<errno> で失敗する場合がある。"
 
 #. type: TP
 #: build/C/man3/if_nametoindex.3:74
@@ -2741,19 +2751,19 @@ msgstr "B<ENXIO>"
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:77
 msgid "No interface found for the index."
-msgstr ""
+msgstr "インデックスに対応するインターフェースがない。"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:85
 msgid ""
 "B<if_nametoindex>()  and B<if_indextoname>()  may also fail for any of the "
 "errors specified for B<socket>(2)  or B<ioctl>(2)."
-msgstr ""
+msgstr "B<if_nametoindex>() と B<if_indextoname>() は、 B<socket>(2) と B<ioctl>(2) に対して規定されているエラーのいずれかで失敗する場合がある。"
 
 #. type: Plain text
 #: build/C/man3/if_nametoindex.3:93
 msgid "B<getifaddrs>(3), B<if_nameindex>(3), B<ifconfig>(8)"
-msgstr ""
+msgstr "B<getifaddrs>(3), B<if_nameindex>(3), B<ifconfig>(8)"
 
 #. type: TH
 #: build/C/man2/listen.2:45
@@ -3678,7 +3688,7 @@ msgstr "2012-12-24"
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:34
 msgid "recvmmsg - receive multiple messages on a socket"
-msgstr ""
+msgstr "recvmmsg - 複数のメッセージをソケットから受信する"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:38 build/C/man2/sendmmsg.2:35
@@ -3710,26 +3720,26 @@ msgid ""
 "call.  (This has performance benefits for some applications.)  A further "
 "extension over B<recvmsg>(2)  is support for a timeout on the receive "
 "operation."
-msgstr ""
+msgstr "B<recvmmsg>() システムコールは B<recvmsg>(2) の拡張で、 このシステムコールを使うと一度の呼び出しでソケットから複数のメッセージを受信することができる (アプリケーションによっては性能上のメリットがある)。 他に B<recvmsg>(2) から拡張されている点としては、受信操作におけるタイムアウトのサポートがある。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:59
 msgid ""
 "The I<sockfd> argument is the file descriptor of the socket to receive data "
 "from."
-msgstr ""
+msgstr "I<sockfd> 引き数は、データを受信するソケットのファイルディスクリプタである。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:67 build/C/man2/sendmmsg.2:62
 msgid ""
 "The I<msgvec> argument is a pointer to an array of I<mmsghdr> structures.  "
 "The size of this array is specified in I<vlen>."
-msgstr ""
+msgstr "I<msgvec> 引き数は I<mmsghdr> 構造体の配列である。 この配列の大きさは I<vlen> で指定する。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:73 build/C/man2/sendmmsg.2:68
 msgid "The I<mmsghdr> structure is defined in I<E<lt>sys/socket.hE<gt>> as:"
-msgstr ""
+msgstr "I<mmsghdr> 構造体は I<E<lt>sys/socket.hE<gt>> で次のように定義されている。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:80
@@ -3741,8 +3751,8 @@ msgid ""
 "};\n"
 msgstr ""
 "struct mmsghdr {\n"
-"    struct msghdr msg_hdr;  /* Message header */\n"
-"    unsigned int  msg_len;  /* Number of received bytes for header */\n"
+"    struct msghdr msg_hdr;  /* メッセージヘッダ */\n"
+"    unsigned int  msg_len;  /* このヘッダで受信されたバイト数 */\n"
 "};\n"
 
 #. type: Plain text
@@ -3752,14 +3762,14 @@ msgid ""
 "(2).  The I<msg_len> field is the number of bytes returned for the message "
 "in the entry.  This field has the same value as the return value of a single "
 "B<recvmsg>(2)  on the header."
-msgstr ""
+msgstr "I<msg_hdr> フィールドは、 B<recvmsg>(2) で説明されている I<msghdr> 構造体である。 I<msg_len> フィールドは、 このエントリで返されるメッセージのバイト数で、 このヘッダに対して B<recvmsg>(2) を呼び出した場合の返り値と同じ値が入る。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:102
 msgid ""
 "The I<flags> argument contains flags ORed together.  The flags are the same "
 "as documented for B<recvmsg>(2), with the following addition:"
-msgstr ""
+msgstr "I<flags> 引き数には複数のフラグを論理和 (OR) で指定できる。 フラグは、 B<recvmsg>(2) で説明されているものに加えて、以下が使用できる。"
 
 #. type: TP
 #: build/C/man2/recvmmsg.2:102
@@ -3770,7 +3780,7 @@ msgstr "B<MSG_WAITFORONE> (Linux 2.6.34 以降)"
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:107
 msgid "Turns on B<MSG_DONTWAIT> after the first message has been received."
-msgstr ""
+msgstr "最初のメッセージを受信後に B<MSG_DONTWAIT> を有効にする。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:123
@@ -3781,7 +3791,7 @@ msgid ""
 "granularity, and kernel scheduling delays mean that the blocking interval "
 "may overrun by a small amount.)  If I<timeout> is I<NULL> then the operation "
 "blocks indefinitely."
-msgstr ""
+msgstr "I<timeout> 引き数は I<struct timespec> (B<clock_gettime>(2) 参照) へのポインタで、 この構造体で受信操作のタイムアウト (秒とナノ秒) を指定する (待ち時間はシステムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。 I<timeout>が I<NULL> の場合、 受信操作は無期限に停止 (block) する。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:134
@@ -3790,7 +3800,7 @@ msgid ""
 "received or until the timeout expires.  A nonblocking call reads as many "
 "messages as are available (up to the limit specified by I<vlen>)  and "
 "returns immediately."
-msgstr ""
+msgstr "停止 (blocking) モードの B<recvmmsg>() の呼び出しは、 I<vlen> 個のメッセージを受信するか、タイムアウトが満了するまで停止する。 非停止 (nonblocking) モードの呼び出しでは、 読み出し可能なメッセージ (最大で I<vlen> 個) を読み出し、 すぐに返る。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:149
@@ -3800,7 +3810,7 @@ msgid ""
 "size of the received message; the subfields of I<msg_hdr> are updated as "
 "described in B<recvmsg>(2).  The return value of the call indicates the "
 "number of elements of I<msgvec> that have been updated."
-msgstr ""
+msgstr "B<recvmmsg>() が返った際には、 I<msgvec> のうちデータが受信された要素には、受信したそれぞれのメッセージの情報が格納されている。 また、 I<msg_len> には受信したメッセージの大きさが入り、 I<msg_hdr> の各フィールドは B<recvmsg>(2) に書かれている通りに更新される。 呼び出しの返り値は、更新された I<msgvec> の要素数である。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:157
@@ -3808,18 +3818,18 @@ msgid ""
 "On success, B<recvmmsg>()  returns the number of messages received in "
 "I<msgvec>; on error, -1 is returned, and I<errno> is set to indicate the "
 "error."
-msgstr ""
+msgstr "成功すると、 B<recvmmsg>() は I<msgvec> に受信されたメッセージ数を返す。 エラーの場合、 -1 を返し、 I<errno> にエラーを示す値を設定する。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:161
 msgid ""
 "Errors are as for B<recvmsg>(2).  In addition, the following error can occur:"
-msgstr ""
+msgstr "エラーは B<recvmsg>(2) と同じである。 これに加えて、以下のエラーが起こる場合がある。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:165
 msgid "I<timeout> is invalid."
-msgstr ""
+msgstr "I<timeout> が無効である。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:170
@@ -3831,7 +3841,7 @@ msgstr "B<recvmmsg>() システムコールは Linux 2.6.33 で追加された
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:173
 msgid "B<recvmmsg>()  is Linux-specific."
-msgstr ""
+msgstr "B<recvmmsg>() は Linux 固有である。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:181
@@ -3839,14 +3849,14 @@ msgid ""
 "The following program uses B<recvmmsg>()  to receive multiple messages on a "
 "socket and stores them in multiple buffers.  The call returns if all buffers "
 "are filled or if the timeout specified has expired."
-msgstr ""
+msgstr "以下のプログラムは、 B<recvmmsg>() を使って複数のメッセージをソケットから受信し、それらを複数のバッファに格納する。 呼び出しは、すべてのバッファにメッセージが格納されるか、 指定したタイムアウト時間が経過すると返る。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:184
 msgid ""
 "The following snippet periodically generates UDP datagrams containing a "
 "random number:"
-msgstr ""
+msgstr "以下のコマンドは、 ランダムな数字が入った UDP データグラムを定期的に生成する。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:189
@@ -3855,13 +3865,15 @@ msgid ""
 "$B< while true; do echo $RANDOM E<gt> /dev/udp/127.0.0.1/1234; >\n"
 "B<sleep 0.25; done>\n"
 msgstr ""
+"$B< while true; do echo $RANDOM E<gt> /dev/udp/127.0.0.1/1234; >\n"
+"B<sleep 0.25; done>\n"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:194
 msgid ""
 "These datagrams are read by the example application, which can give the "
 "following output:"
-msgstr ""
+msgstr "生成されたデータグラムをサンプルアプリケーションが読み出し、以下のような出力が得られる。"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:204
@@ -3875,6 +3887,13 @@ msgid ""
 "4 13514\n"
 "5 28421\n"
 msgstr ""
+"$B< ./a.out>\n"
+"5 messages received\n"
+"1 11782\n"
+"2 11345\n"
+"3 304\n"
+"4 13514\n"
+"5 28421\n"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:215
@@ -3911,6 +3930,18 @@ msgid ""
 "    char bufs[VLEN][BUFSIZE+1];\n"
 "    struct timespec timeout;\n"
 msgstr ""
+"int\n"
+"main(void)\n"
+"{\n"
+"#define VLEN 10\n"
+"#define BUFSIZE 200\n"
+"#define TIMEOUT 1\n"
+"    int sockfd, retval, i;\n"
+"    struct sockaddr_in sa;\n"
+"    struct mmsghdr msgs[VLEN];\n"
+"    struct iovec iovecs[VLEN];\n"
+"    char bufs[VLEN][BUFSIZE+1];\n"
+"    struct timespec timeout;\n"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:234 build/C/man2/sendmmsg.2:201
@@ -3960,6 +3991,13 @@ msgid ""
 "        msgs[i].msg_hdr.msg_iovlen = 1;\n"
 "    }\n"
 msgstr ""
+"    memset(msgs, 0, sizeof(msgs));\n"
+"    for (i = 0; i E<lt> VLEN; i++) {\n"
+"        iovecs[i].iov_base         = bufs[i];\n"
+"        iovecs[i].iov_len          = BUFSIZE;\n"
+"        msgs[i].msg_hdr.msg_iov    = &iovecs[i];\n"
+"        msgs[i].msg_hdr.msg_iovlen = 1;\n"
+"    }\n"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:253
@@ -3999,6 +4037,13 @@ msgid ""
 "    exit(EXIT_SUCCESS);\n"
 "}\n"
 msgstr ""
+"    printf(\"%d messages received\\en\", retval);\n"
+"    for (i = 0; i E<lt> retval; i++) {\n"
+"        bufs[i][msgs[i].msg_len] = 0;\n"
+"        printf(\"%d %s\", i+1, bufs[i]);\n"
+"    }\n"
+"    exit(EXIT_SUCCESS);\n"
+"}\n"
 
 #. type: Plain text
 #: build/C/man2/recvmmsg.2:275
@@ -6907,7 +6952,7 @@ msgstr "2012-12-16"
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:31
 msgid "sendmmsg - send multiple messages on a socket"
-msgstr ""
+msgstr "sendmmsg - 複数のメッセージをソケットへ送信する"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:39
@@ -6926,14 +6971,14 @@ msgid ""
 "The B<sendmmsg>()  system call is an extension of B<sendmsg>(2)  that allows "
 "the caller to transmit multiple messages on a socket using a single system "
 "call.  (This has performance benefits for some applications.)"
-msgstr ""
+msgstr "B<sendmmsg>() システムコールは B<sendmsg>(2) の拡張で、 このシステムコールを使うと一度の呼び出しでソケットに複数のメッセージを送信できる (アプリケーションによっては性能上のメリットがある)。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:54
 msgid ""
 "The I<sockfd> argument is the file descriptor of the socket on which data is "
 "to be transmitted."
-msgstr ""
+msgstr "I<sockfd> 引き数は、 データを送信するソケットのファイルディスクリプタである。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:75
@@ -6944,6 +6989,10 @@ msgid ""
 "    unsigned int  msg_len;  /* Number of bytes transmitted */\n"
 "};\n"
 msgstr ""
+"struct mmsghdr {\n"
+"    struct msghdr msg_hdr;  /* メッセージヘッダ */\n"
+"    unsigned int  msg_len;  /* 送信されたバイト数 */\n"
+"};\n"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:91
@@ -6952,14 +7001,14 @@ msgid ""
 "(2).  The I<msg_len> field is used to return the number of bytes sent from "
 "the message in I<msg_hdr> (i.e., the same as the return value from a single "
 "B<sendmsg>(2)  call)."
-msgstr ""
+msgstr "I<msg_hdr> フィールドは、 B<sendmsg>(2) で説明されている I<msghdr> 構造体である。 I<msg_len> フィールドは I<msg_hdr> から送信されたメッセージのバイト数を返すのに使用される。 この値は B<sendmsg>(2) をこのヘッダに対して呼び出した場合の返り値と同じである。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:97
 msgid ""
 "The I<flags> argument contains flags ORed together.  The flags are the same "
 "as for B<sendmsg>(2)."
-msgstr ""
+msgstr "I<flags> 引き数には複数のフラグを論理和 (OR) で指定できる。フラグは B<sendmsg>(2) と同じである。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:107
@@ -6967,7 +7016,7 @@ msgid ""
 "A blocking B<sendmmsg>()  call blocks until I<vlen> messages have been "
 "sent.  A nonblocking call sends as many messages as possible (up to the "
 "limit specified by I<vlen>)  and returns immediately."
-msgstr ""
+msgstr "停止 (blocking) モードの B<sendmmsg>() の呼び出しは、 I<vlen> 個のメッセージが送信されるまで停止する。 非停止 (nonblocking) モードの呼び出しでは、 送信できるだけのメッセージ (最大で I<vlen> 個) を送信し、 すぐに返る。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:119
@@ -6976,7 +7025,7 @@ msgid ""
 "of I<msgvec> are updated to contain the number of bytes transmitted from the "
 "corresponding I<msg_hdr>.  The return value of the call indicates the number "
 "of elements of I<msgvec> that have been updated."
-msgstr ""
+msgstr "B<sendmmsg>() が返った際には、 I<msgvec> の送信が行われた要素の I<msg_len> フィールドは、対応する I<msg_hdr> から送信されたバイト数が入っている。 呼び出しの返り値は、更新された I<msgvec> の要素数である。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:129
@@ -6984,12 +7033,12 @@ msgid ""
 "On success, B<sendmmsg>()  returns the number of messages sent from "
 "I<msgvec>; if this is less than I<vlen>, the caller can retry with a further "
 "B<sendmmsg>()  call to send the remaining messages."
-msgstr ""
+msgstr "成功すると、 B<sendmmsg>() は I<msgvec> から送信されたメッセージ数を返す。 返り値が I<vlen> よりも小さい場合、 呼び出した側では再度 B<sendmmsg> を呼び出して残りのメッセージを送信することができる。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:133
 msgid "On error, -1 is returned, and I<errno> is set to indicate the error."
-msgstr ""
+msgstr "エラーの場合、 -1 を返し、 I<errno> にエラーを示す値を設定する。"
 
 #
 #.  commit 728ffb86f10873aaf4abd26dde691ee40ae731fe
@@ -7004,19 +7053,19 @@ msgstr ""
 msgid ""
 "Errors are as for B<sendmsg>(2).  An error is returned only if no datagrams "
 "could be sent."
-msgstr ""
+msgstr "エラーは B<sendmsg>(2) と同じである。 エラーが返されるのは、 データグラムが全く送信できなかった場合のみである。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:150
 msgid ""
 "The B<sendmmsg>()  system call was added in Linux 3.0.  Support in glibc was "
 "added in version 2.14."
-msgstr ""
+msgstr "B<sendmmsg>() システムコールは Linux 3.0 で追加された。 glibc でのサポートはバージョン 2.14 で追加された。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:153
 msgid "B<sendmmsg>()  is Linux-specific."
-msgstr ""
+msgstr "B<sendmmsg>() は Linux 固有である。"
 
 #
 #
@@ -7030,7 +7079,7 @@ msgstr ""
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:168
 msgid "The value specified in I<vlen> is capped to B<UIO_MAXIOV> (1024)."
-msgstr ""
+msgstr "I<vlen> に指定できる値の最大値は B<UIO_MAXIOV> (1024) である。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:177
@@ -7038,7 +7087,7 @@ msgid ""
 "The example below uses B<sendmmsg>()  to send I<onetwo> and I<three> in two "
 "distinct UDP datagrams using one system call.  The contents of the first "
 "datagram originates from a pair of buffers."
-msgstr ""
+msgstr "以下の例では、 B<sendmmsg>() を使って、 一度のシステムコールで、 I<onetwo> と I<three> を二つの別々の UDP データグラムで送信する。 一つ目のデータグラムの内容は、二つのバッファから取得される。"
 
 #. type: Plain text
 #: build/C/man2/sendmmsg.2:186
index 5e5e670..e69de29 100644 (file)
@@ -1,2 +0,0 @@
-# pagename,#complete,#remaining,#all
-numa.7,40,12,52
index 4e68fc3..aa31c2a 100644 (file)
@@ -1,6 +1,2 @@
 # pagename,#complete,#remaining,#all
-getifaddrs.3,33,17,50
-if_nameindex.3,25,15,40
-if_nametoindex.3,19,9,28
-recvmmsg.2,28,24,52
-sendmmsg.2,29,17,46
+getifaddrs.3,36,14,50
index 2e14421..fe333d8 100644 (file)
 ○:LDP man-pages:3.51:2010/10/31:reboot:2:2013/03/25::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2012/12/21:recv:2:2013/03/26::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 @:LDP man-pages:3.51:2012/12/21:recvfrom:2:recv:2:
-×:LDP man-pages:3.51:2012/12/24:recvmmsg:2:::::
+○:LDP man-pages:3.51:2012/12/24:recvmmsg:2:2013/05/18::amotoki@gmail.com:Akihiro MOTOKI:
 @:LDP man-pages:3.51:2012/12/21:recvmsg:2:recv:2:
 ○:LDP man-pages:3.51:2008/04/22:remap_file_pages:2:2013/03/25::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2013/01/19:removexattr:2:2013/03/25::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2012/04/23:send:2:2013/03/26::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2011/09/14:sendfile:2:2013/03/25::amotoki@gmail.com:Akihiro MOTOKI:
 @:LDP man-pages:3.51:2011/09/14:sendfile64:2:sendfile:2:
-×:LDP man-pages:3.51:2012/12/16:sendmmsg:2:::::
+○:LDP man-pages:3.51:2012/12/16:sendmmsg:2:2013/05/18::amotoki@gmail.com:Akihiro MOTOKI:
 @:LDP man-pages:3.51:2012/04/23:sendmsg:2:send:2:
 @:LDP man-pages:3.51:2012/04/23:sendto:2:send:2:
 ○:LDP man-pages:3.51:2008/08/15:set_mempolicy:2:2013/03/25::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2012/05/10:iconv:3:2013/03/25::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2008/08/11:iconv_close:3:2013/03/25::sato@complex.eng.hokudai.ac.jp:Yuichi SATO:
 ○:LDP man-pages:3.51:2008/08/11:iconv_open:3:2013/03/25::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
-:LDP man-pages:3.51:2012/11/21:if_freenameindex:3:if_nameindex:3:
-:LDP man-pages:3.51:2012/12/14:if_indextoname:3:if_nametoindex:3:
-×:LDP man-pages:3.51:2012/11/21:if_nameindex:3:::::
-×:LDP man-pages:3.51:2012/12/14:if_nametoindex:3:::::
+:LDP man-pages:3.51:2012/11/21:if_freenameindex:3:if_nameindex:3:
+:LDP man-pages:3.51:2012/12/14:if_indextoname:3:if_nametoindex:3:
+○:LDP man-pages:3.51:2012/11/21:if_nameindex:3:2013/05/18::amotoki@gmail.com:Akihiro MOTOKI:
+○:LDP man-pages:3.51:2012/12/14:if_nametoindex:3:2013/05/18::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2010/09/20:ilogb:3:2013/03/25::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 @:LDP man-pages:3.51:2010/09/20:ilogbf:3:ilogb:3:
 @:LDP man-pages:3.51:2010/09/20:ilogbl:3:ilogb:3:
 ○:LDP man-pages:3.51:2013/02/12:nscd.conf:5:2006/07/19::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 ×:LDP man-pages:3.51:2013/02/13:nss:5:::::
 ○:LDP man-pages:3.51:2013/02/12:nsswitch.conf:5:2013/03/25::amotoki@gmail.com:Akihiro MOTOKI:
-:LDP man-pages:3.51:2012/08/05:numa_maps:5:numa:7:
+:LDP man-pages:3.51:2012/08/05:numa_maps:5:numa:7:
 ○:LDP man-pages:3.51:2012/05/03:passwd:5:2013/03/25::amotoki@gmail.com:Akihiro MOTOKI:
 ☆:LDP man-pages:3.50=>3.51:2013/04/17:proc:5:2013/03/25::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2012/08/05:protocols:5:2013/03/25::argrath@ub32.org:Kentaro Shirakata:
 ○:LDP man-pages:3.51:2009/09/27:mq_overview:7:2013/03/26::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2012/04/26:netdevice:7:2013/03/26::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2013/03/15:netlink:7:2013/03/26::amotoki@gmail.com:Akihiro MOTOKI:
-×:LDP man-pages:3.51:2012/08/05:numa:7:::::
+○:LDP man-pages:3.51:2012/08/05:numa:7:2013/05/18::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2011/09/09:operator:7:2013/03/25::ysato444@yahoo.co.jp:Yuichi SATO:
 ○:LDP man-pages:3.51:2012/05/10:packet:7:2013/03/26::amotoki@gmail.com:Akihiro MOTOKI:
 ○:LDP man-pages:3.51:2009/12/05:path_resolution:7:2013/03/25::amotoki@dd.iij4u.or.jp:Akihiro MOTOKI:
index d4a0ebf..54271bd 100644 (file)
@@ -51,8 +51,6 @@
 <TR><TD>getaddrinfo_a.3</TD><TD>41/122</TD><TD>66.39</TD></TR>
 <TR><TD>getent.1</TD><TD>20/57</TD><TD>64.91</TD></TR>
 <TR><TD>nss.5</TD><TD>9/27</TD><TD>66.67</TD></TR>
-<TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>numa</B></TD></TR>
-<TR class="over70"><TD>numa.7</TD><TD>12/52</TD><TD>76.92</TD></TR>
 <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>process</B></TD></TR>
 <TR><TD>cpuset.7</TD><TD>212/314</TD><TD>32.48</TD></TR>
 <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>sched</B></TD></TR>
 <TR><TD>timer_getoverrun.2</TD><TD>12/36</TD><TD>66.67</TD></TR>
 <TR><TD>timer_settime.2</TD><TD>18/44</TD><TD>59.09</TD></TR>
 <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>socket</B></TD></TR>
-<TR><TD>getifaddrs.3</TD><TD>17/50</TD><TD>66.00</TD></TR>
-<TR><TD>if_nameindex.3</TD><TD>15/40</TD><TD>62.50</TD></TR>
-<TR><TD>if_nametoindex.3</TD><TD>9/28</TD><TD>67.86</TD></TR>
-<TR><TD>recvmmsg.2</TD><TD>24/52</TD><TD>53.85</TD></TR>
-<TR><TD>sendmmsg.2</TD><TD>17/46</TD><TD>63.04</TD></TR>
+<TR class="over70"><TD>getifaddrs.3</TD><TD>14/50</TD><TD>72.00</TD></TR>
 <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>special</B></TD></TR>
 <TR><TD>cciss.4</TD><TD>44/88</TD><TD>50.00</TD></TR>
 <TR><TD>cpuid.4</TD><TD>13/24</TD><TD>45.83</TD></TR>
@@ -87,6 +81,6 @@
 <TR class="over70"><TD>clock_getcpuclockid.3</TD><TD>9/44</TD><TD>79.55</TD></TR>
 <TR><TD>utimensat.2</TD><TD>50/107</TD><TD>53.27</TD></TR>
 <TR class="over80"><TD>zdump.8</TD><TD>1/22</TD><TD>95.45</TD></TR>
-<TR><TD COLSPAN=3>Total 58 pages</TD></TR>
+<TR><TD COLSPAN=3>Total 53 pages</TD></TR>
 </TABLE>
 </BODY></HTML>