OSDN Git Service

Update releases for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man2 / recv.2
index c7ed629..39a1049 100644 (file)
@@ -61,7 +61,7 @@
 .\" Updated 2013-03-26, Akihiro MOTOKI <amotoki@gmail.com>
 .\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.TH RECV 2 2014\-02\-11 Linux "Linux Programmer's Manual"
+.TH RECV 2 2014\-05\-10 Linux "Linux Programmer's Manual"
 .SH 名前
 recv, recvfrom, recvmsg \- ソケットからメッセージを受け取る
 .SH 書式
@@ -80,11 +80,9 @@ recv, recvfrom, recvmsg \- ソケットからメッセージを受け取る
 \fBssize_t recvmsg(int \fP\fIsockfd\fP\fB, struct msghdr *\fP\fImsg\fP\fB, int \fP\fIflags\fP\fB);\fP
 .fi
 .SH 説明
-The \fBrecv\fP(), \fBrecvfrom\fP(), and \fBrecvmsg\fP()  calls are used to receive
-messages from a socket.  They may be used to receive data on both
-connectionless and connection\-oriented sockets.  This page first describes
-common features of all three system calls, and then describes the
-differences between the calls.
+\fBrecv\fP(), \fBrecvfrom\fP(), \fBrecvmsg\fP() コールは、 ソケットからメッセージを受け取るのに使用される。
+これらはコネクションレス型のソケットにも接続指向 (connection\-oriened) 型のソケットにも使用できる。 このページでは、まずこれら 3
+つのシステムコールすべてに共通の機能について説明し、 システムコール間の違いについて説明する。
 .PP
 これらの三つのシステムコールはいずれも、成功した場合にはメッセージの長さを返す。 メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、
 メッセージを受信したソケットの種類によっては余分のバイトが捨てられる かもしれない。
@@ -96,7 +94,7 @@ differences between the calls.
 .PP
 アプリケーションは \fBselect\fP(2), \fBpoll\fP(2), \fBepoll\fP(7)
 を使って、ソケットにさらにデータが到着しているかを判定することができる。
-.SS "The flags argument"
+.SS フラグ引き数
 \fIflags\fP 引き数には、以下の値を 1つ以上、ビット単位の論理和 を取ったものを指定する:
 .TP 
 \fBMSG_CMSG_CLOEXEC\fP (\fBrecvmsg\fP() のみ; Linux 2.6.23)
@@ -180,8 +178,8 @@ Internet ストリームソケットでの利用については \fBtcp\fP(7)  
 このフラグは、要求した量いっぱいのデータが到着するまで、 操作を停止 (block) するよう要求する。 但し、シグナルを受信したり、エラーや切断
 (disconnect) が発生したり、 次に受信されるデータが異なる型だったりした場合には、 要求した量よりデータが少なくても返ることがある。
 .SS recvfrom()
-\fBrecvfrom\fP()  places the received message into the buffer \fIbuf\fP.  The
-caller must specify the size of the buffer in \fIlen\fP.
+\fBrecvfrom\fP() は受信したメッセージをバッファ \fIbuf\fP に格納する。 呼び出し元はバッファサイズを \fIlen\fP
+で指定しなければならない。
 
 .\" (Note: for datagram sockets in both the UNIX and Internet domains,
 .\" .I src_addr
@@ -191,18 +189,15 @@ caller must specify the size of the buffer in \fIlen\fP.
 .\" filled in for stream sockets in the Internet domain.)
 .\" [The above notes on AF_UNIX and AF_INET sockets apply as at
 .\" Kernel 2.4.18. (MTK, 22 Jul 02)]
-If \fIsrc_addr\fP is not NULL, and the underlying protocol provides the source
-address of the message, that source address is placed in the buffer pointed
-to by \fIsrc_addr\fP.  In this case, \fIaddrlen\fP is a value\-result argument.
-Before the call, it should be initialized to the size of the buffer
-associated with \fIsrc_addr\fP.  Upon return, \fIaddrlen\fP is updated to contain
-the actual size of the source address.  The returned address is truncated if
-the buffer provided is too small; in this case, \fIaddrlen\fP will return a
-value greater than was supplied to the call.
+\fIsrc_addr\fP が NULL 以外で、下層のプロトコルからメッセージの送信元アドレスが分かる場合、 この送信元アドレスが \fIsrc_addr\fP
+が指すバッファに格納される。 この場合、 \fIaddrlen\fP は入出力両用の引き数となる。 呼び出し前に、呼び出し元は \fIsrc_addr\fP
+に割り当てたバッファの大きさで初期化しておくべきである。 返ってくる時には、 \fIaddrlen\fP
+は送信元アドレスの実際の大きさに変更される。渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り詰められる。この場合には、
+\fIaddrlen\fP では、呼び出し時に渡された値よりも大きな値が返される。
 
 .\"
-If the caller is not interested in the source address, \fIsrc_addr\fP should be
-specified as NULL and \fIaddrlen\fP should be specified as 0.
+呼び出し元が送信元アドレスを必要としない場合は、 \fIsrc_addr\fP には NULL を指定し、 \fIaddrlen\fP には 0
+を指定すべきである。
 .SS recv()
 \fBrecv\fP()  コールは通常 \fI接続済みの (connected)\fP ソケットに対してのみ使用される (\fBconnect\fP(2)
 参照)。次の呼び出しと等価である。
@@ -232,12 +227,17 @@ struct msghdr {
 .fi
 .in
 .PP
-\fImsg_name\fP と \fImsg_namelen\fP は、ソケットが接続されていない場合に送信元のアドレスを指定する。 名前が必要ない場合には
-\fImsg_name\fP に NULL ポインタを指定する。 \fImsg_iov\fP と \fImsg_iovlen\fP フィールドは \fBreadv\fP(2)
-に記述されているような分解/結合用のベクトル (scatter\-gather locations)  を指定する。 \fImsg_control\fP
-フィールドは \fImsg_controllen\fP の長さを持ち、他のプロトコル制御メッセージや 種々の補助データのためのバッファへのポインタである。
-\fBrecvmsg\fP()  を呼ぶ際には、 \fImsg_controllen\fP に \fImsg_control\fP
-のバッファの長さを入れておく必要がある。 コールが成功して返った場合、制御メッセージ列の長さが入っている。
+フィールド \fImsg_name\fP は、 ソケットが接続されていない場合に送信元アドレスを返すのに使用されるバッファを指す。
+このバッファは呼び出し元が確保する。 呼び出し元は呼び出し前に \fImsg_namelen\fP にこのバッファの大きさを設定しなければならない。
+呼び出しが成功した場合、呼び出しから返って来た際には \fImsg_namelen\fP には返されるアドレスの長さが入っている。
+アプリケーションが送信元アドレスを知る必要がない場合には、 \fImsg_name\fP に NULL を指定することができる。
+
+\fImsg_iov\fP と \fImsg_iovlen\fP フィールドは scatter\-gather 用の場所を指定する。 \fBreadv\fP(2)
+に説明がある。
+
+\fImsg_control\fP フィールドは \fImsg_controllen\fP の長さを持ち、他のプロトコル制御メッセージや
+種々の補助データのためのバッファへのポインタである。 \fBrecvmsg\fP()  を呼ぶ際には、 \fImsg_controllen\fP に
+\fImsg_control\fP のバッファの長さを入れておく必要がある。 コールが成功して返った場合、制御メッセージ列の長さが入っている。
 .PP
 メッセージの形式は以下の通り:
 .in +4n
@@ -282,12 +282,10 @@ struct cmsghdr {
 ストリームソケットの接続相手が正しくシャットダウンを実行した場合は、
 返り値は 0 (昔ながらの "end\-of\-file" の戻り値) となる。
 
-Datagram sockets in various domains (e.g., the UNIX and Internet domains)
-permit zero\-length datagrams.  When such a datagram is received, the return
-value is 0.
+いくつかのドメインのデータグラムソケット (UNIX ドメインやインターネットドメインなど) では、長さ 0 のデータグラムが送信できる。
+このようなデータグラムを受信した場合、 返り値は 0 となる。
 
-The value 0 may also be returned if the requested number of bytes to receive
-from a stream socket was 0.
+ストリームソケットに対する受信要求バイト数が 0 だった場合も、 値 0 が返される。
 .SH エラー
 これらはソケット層で発生する一般的なエラーである。 他のエラーが下層のプロトコル・モジュールで生成され、 返されるかもしれない。
 それらのマニュアルを参照すること。
@@ -350,6 +348,6 @@ POSIX.1\-2001 では、構造体 \fImsghdr\fP のフィールド \fImsg_controll
 \fBfcntl\fP(2), \fBgetsockopt\fP(2), \fBread\fP(2), \fBrecvmmsg\fP(2), \fBselect\fP(2),
 \fBshutdown\fP(2), \fBsocket\fP(2), \fBcmsg\fP(3), \fBsockatmark\fP(3), \fBsocket\fP(7)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.63 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。