OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / recv.2
index 2d1775b..5009781 100644 (file)
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"     $Id: recv.2,v 1.8 2001/08/15 18:00:48 hanataka Exp $
+.\"     $Id: recv.2,v 1.3 1999/05/13 11:33:38 freitag Exp $
 .\"
 .\" Modified Sat Jul 24 00:22:20 1993 by Rik Faith <faith@cs.unc.edu>
 .\" Modified Tue Oct 22 17:45:19 1996 by Eric S. Raymond <esr@thyrsus.com>
 .\" Modified 1998,1999 by Andi Kleen
 .\" 2001-06-19 corrected SO_EE_OFFENDER, bug report by James Hawtin
 .\"
-.\" Japanese Version Copyright (c) 1996 Akira Yoshiyama
-.\"         all rights reserved.
-.\" Translated 1996-07-18, Akira Yoshiyama <yosshy@jedi.seg.kobe-u.ac.jp>
-.\" Modified 1997-12-14, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Modified 1999-08-14, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated & Modified 2000-10-12, HAYAKAWA Hitoshi <cz8cb01@linux.or.jp>
-.\"        and NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Updated & Modified 2001-02-09, NAKANO Takeo
-.\" Updated 2003-10-11, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2005-03-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-04-15, Akihiro MOTOKI, Catch up to LDP v2.29
-.\" Updated 2007-10-12, Akihiro MOTOKI, LDP v2.66
-.\" Updated 2008-08-06, Akihiro MOTOKI, LDP v3.05
-.\" Updated 2009-04-13, Akihiro MOTOKI, LDP v3.20
+.\"*******************************************************************
 .\"
-.\"WORD:       ancillary data          補助データ
-.\"WORD:       ancillary message       補助メッセージ
-.\"WORD:       invalid                 不正な
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH RECV 2 2011-09-16 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH RECV 2 2011\-09\-16 Linux "Linux Programmer's Manual"
 .SH 名前
 recv, recvfrom, recvmsg \- ソケットからメッセージを受け取る
 .SH 書式
 .\" .B #include <sys/uio.h>
 .\" .br
 .nf
-.B #include <sys/types.h>
+\fB#include <sys/types.h>\fP
 .br
-.B #include <sys/socket.h>
+\fB#include <sys/socket.h>\fP
 .sp
-.BI "ssize_t recv(int " sockfd ", void *" buf ", size_t " len ", int " flags );
+\fBssize_t recv(int \fP\fIsockfd\fP\fB, void *\fP\fIbuf\fP\fB, size_t \fP\fIlen\fP\fB, int \fP\fIflags\fP\fB);\fP
 .sp
-.BI "ssize_t recvfrom(int " sockfd ", void *" buf ", size_t " len ", int " flags ,
-.BI "                 struct sockaddr *" src_addr ", socklen_t *" addrlen );
+\fBssize_t recvfrom(int \fP\fIsockfd\fP\fB, void *\fP\fIbuf\fP\fB, size_t \fP\fIlen\fP\fB, int \fP\fIflags\fP\fB,\fP
+\fB                 struct sockaddr *\fP\fIsrc_addr\fP\fB, socklen_t *\fP\fIaddrlen\fP\fB);\fP
 .sp
-.BI "ssize_t recvmsg(int " sockfd ", struct msghdr *" msg ", int " flags );
+\fBssize_t recvmsg(int \fP\fIsockfd\fP\fB, struct msghdr *\fP\fImsg\fP\fB, int \fP\fIflags\fP\fB);\fP
 .fi
 .SH 説明
-.BR recvfrom ()
-と
-.BR recvmsg ()
-コールは、ソケットからメッセージを受け取るのに使用する。
-またソケットのデータ受信にも使うことができ、
-このときソケットは接続指向 (connection-oriened) であってもなくてもよい。
+\fBrecvfrom\fP()  と \fBrecvmsg\fP()  コールは、ソケットからメッセージを受け取るのに使用する。
+またソケットのデータ受信にも使うことができ、 このときソケットは接続指向 (connection\-oriened) であってもなくてもよい。
 .PP
-.I src_addr
-が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、
-.I src_addr
-にはこの送信元アドレスが入れられる。
-.I src_addr
-が NULL の場合、
-.I src_addr
-には何も入らない。この場合、
-.I addrlen
-は使用されず、この引き数は NULL にしておくべきである。
-.\" (UNIX ドメインとインターネットドメインのどちらのデータグラムソケットでも
+.\" (Note: for datagram sockets in both the UNIX and Internet domains,
 .\" .I src_addr
-.\" に送信元アドレスが入れられる。また、UNIX ドメインのストリームソケットでも
-.\" 同様だが、インターネットドメインのストリームソケットでは
+.\" is filled in.
 .\" .I src_addr
-.\" にアドレスが入れられない。)
-.\" [上記の AF_UNIX と AF_INET ソケットに関する注記はカーネル 2.4.18 での
-.\" 動作と同じである。 (MTK, 22 Jul 02)]
-引き数
-.I addrlen
-は入出力両用の引き数である。呼び出し時には、呼び出し元が
-.I src_addr
-に割り当てたバッファの大きさで初期化しておくべきである。
-返ってくる時には、送信元アドレスの実際の大きさに変更される。
-渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は
-切り詰められる。この場合には、
-.I addrlen
-では、呼び出し時に渡された値よりも大きな値が返される。
+.\" is also filled in for stream sockets in the UNIX domain, but is not
+.\" 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)]
+\fIsrc_addr\fP が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 \fIsrc_addr\fP
+にはこの送信元アドレスが入れられる。 \fIsrc_addr\fP が NULL の場合、 \fIsrc_addr\fP には何も入らない。この場合、
+\fIaddrlen\fP は使用されず、この引き数は NULL にしておくべきである。 引き数 \fIaddrlen\fP
+は入出力両用の引き数である。呼び出し時には、呼び出し元が \fIsrc_addr\fP に割り当てたバッファの大きさで初期化しておくべきである。
+返ってくる時には、送信元アドレスの実際の大きさに変更される。 渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は
+切り詰められる。この場合には、 \fIaddrlen\fP では、呼び出し時に渡された値よりも大きな値が返される。
 .PP
-.BR recv ()
-コールは通常
-.I 接続済みの (connected)
-ソケット
-.RB ( connect (2)
-を参照) についてのみ使用され、
-.I src_addr
-引き数に NULL を指定した
-.BR recvfrom ()
-と等価である。
+\fBrecv\fP()  コールは通常 \fI接続済みの (connected)\fP ソケット (\fBconnect\fP(2)  を参照) についてのみ使用され、
+\fIsrc_addr\fP 引き数に NULL を指定した \fBrecvfrom\fP()  と等価である。
 .PP
-これらの三つのルーチンはいずれも、成功した場合にはメッセージの長さを返す。
-メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、
-メッセージを受信したソケットの種類によっては余分のバイトが捨てられる
-かもしれない。
+これらの三つのルーチンはいずれも、成功した場合にはメッセージの長さを返す。 メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、
+メッセージを受信したソケットの種類によっては余分のバイトが捨てられる かもしれない。
 .PP
-ソケットに受け取るメッセージが存在しなかった場合、
-受信用のコールはメッセージが到着するまで待つ。
-ただし、ソケットが非停止 (nonblocking)
-に設定されていた場合
-.RB ( fcntl (2)
-を参照) は \-1 を返し、外部変数
-.I errno
-に
-.B EAGAIN
-か
-.B EWOULDBLOCK
-を設定する。
-これらの受信用のコールは、受信したデータのサイズが要求したサイズに
-達するまで待つのではなく、何らかのデータを受信すると復帰する
-(受信されるデータの最大サイズは要求したサイズである)。
+ソケットに受け取るメッセージが存在しなかった場合、 受信用のコールはメッセージが到着するまで待つ。 ただし、ソケットが非停止 (nonblocking)
+に設定されていた場合 (\fBfcntl\fP(2)  を参照) は \-1 を返し、外部変数 \fIerrno\fP に \fBEAGAIN\fP か
+\fBEWOULDBLOCK\fP を設定する。 これらの受信用のコールは、受信したデータのサイズが要求したサイズに
+達するまで待つのではなく、何らかのデータを受信すると復帰する (受信されるデータの最大サイズは要求したサイズである)。
 .PP
-.BR select (2)
-や
-.BR poll (2)
-コールを使って、次のデータがいつ届くかを判断できる。
+\fBselect\fP(2)  や \fBpoll\fP(2)  コールを使って、次のデータがいつ届くかを判断できる。
 .PP
-.BR recv ()
-コールの
-.I flags
-引き数には、以下の値を 1つ以上、ビット単位の論理和
-を取ったものを指定する:
-.TP
-.BR MSG_CMSG_CLOEXEC " (" recvmsg "() のみ; Linux 2.6.23)"
-.RB ( unix (7)
-で説明されている)
-.B SCM_RIGHTS
-操作を使って UNIX ドメインのファイルディスクリプタ経由で受信した
-ファイルディスクリプタについて close-on-exec フラグをセットする。
-このフラグは、
-.BR open (2)
-の
-.B O_CLOEXEC
+\fBrecv\fP()  コールの \fIflags\fP 引き数には、以下の値を 1つ以上、ビット単位の論理和 を取ったものを指定する:
+.TP 
+\fBMSG_CMSG_CLOEXEC\fP (\fBrecvmsg\fP() のみ; Linux 2.6.23)
+(\fBunix\fP(7)  で説明されている)  \fBSCM_RIGHTS\fP 操作を使って UNIX ドメインのファイルディスクリプタ経由で受信した
+ファイルディスクリプタについて close\-on\-exec フラグをセットする。 このフラグは、 \fBopen\fP(2)  の \fBO_CLOEXEC\fP
 フラグと同じ理由で有用である。
-.TP
-.BR MSG_DONTWAIT " (Linux 2.2 以降)"
-非停止 (nonblocking) 操作を有効にする。
-操作が停止するような場合にエラー
-.B EAGAIN
-か
-.B EWOULDBLOCK
-で呼び出しが失敗する
-.RB ( fcntl (2)
-の
-.B F_SETFL
-で
-.B O_NONBLOCK
+.TP 
+\fBMSG_DONTWAIT\fP (Linux 2.2 以降)
+非停止 (nonblocking) 操作を有効にする。 操作が停止するような場合にエラー \fBEAGAIN\fP か \fBEWOULDBLOCK\fP
+で呼び出しが失敗する (\fBfcntl\fP(2)  の \fBF_SETFL\fP で \fBO_NONBLOCK\fP
 フラグを指定することによっても有効にできる)。
-.TP
-.BR MSG_ERRQUEUE " (Linux 2.2 以降)"
-このフラグを指定すると、
-キューに入れられたエラーをソケットのエラーキューから取りだせるようになる。
-このエラーは補助メッセージに組み込まれて渡され、
-この補助メッセージの種別はプロトコルに依存する
-(IPv4 の場合は
-.BR IP_RECVERR )。
-ユーザは十分なサイズのバッファを用意しなければならない。
-補助メッセージに関するより詳細な情報は
-.BR cmsg (3)
-および
-.BR ip (7)
-を参照のこと。
-エラーの原因となったオリジナルパケットのペイロードは、
-.I msg_iovec
-経由で通常のデータとして渡される。
-エラーを起こしたデータグラムのオリジナルの宛先アドレスは、
-.I msg_name
-経由で参照できる。
+.TP 
+\fBMSG_ERRQUEUE\fP (Linux 2.2 以降)
+このフラグを指定すると、 キューに入れられたエラーをソケットのエラーキューから取りだせるようになる。 このエラーは補助メッセージに組み込まれて渡され、
+この補助メッセージの種別はプロトコルに依存する (IPv4 の場合は \fBIP_RECVERR\fP)。
+ユーザは十分なサイズのバッファを用意しなければならない。 補助メッセージに関するより詳細な情報は \fBcmsg\fP(3)  および \fBip\fP(7)
+を参照のこと。 エラーの原因となったオリジナルパケットのペイロードは、 \fImsg_iovec\fP 経由で通常のデータとして渡される。
+エラーを起こしたデータグラムのオリジナルの宛先アドレスは、 \fImsg_name\fP 経由で参照できる。
 .IP
 ローカルなエラーの場合はアドレスは渡されない
-(これは
-.I cmsghdr
-の
-.I cmsg_len
-メンバーでチェックできる)。
-受信エラーの場合は
-.B MSG_ERRQUIE
-が
-.I msghdr
-にセットされる。
+(これは \fIcmsghdr\fP の \fIcmsg_len\fP メンバーでチェックできる)。
+受信エラーの場合は \fBMSG_ERRQUIE\fP が \fImsghdr\fP にセットされる。
 エラーが渡された後には、キューに入っている次のエラーに基いて、
 処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。
 
-.IP
-このエラーは
-.I sock_extended_err
-構造体で提供される:
+このエラーは \fIsock_extended_err\fP 構造体で提供される:
 .in +4n
 .nf
 
@@ -241,81 +141,40 @@ struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);
 .fi
 .in
 .IP
-.I ee_errno
-にはキューに入れられたエラーの
-.I errno
-が入っている。
-.I ee_origin
-にはエラーが発生した場所のオリジン・コード (origin code) が入っている。
-他のフィールドはプロトコル依存である。
-.B SO_EE_OFFENDER
-マクロは、この補助的なメッセージを引き数に取って、
-エラーの発生したネットワークオブジェクトのアドレスへのポインタを返す。
-アドレスが不明の場合には、
-.I sockaddr
-の
-.I sa_family
-メンバーが
-.B AF_UNSPEC
-になっている。
-.I sockaddr
-の他のフィールドは不定である。
+\fIee_errno\fP にはキューに入れられたエラーの \fIerrno\fP が入っている。 \fIee_origin\fP
+にはエラーが発生した場所のオリジン・コード (origin code) が入っている。 他のフィールドはプロトコル依存である。
+\fBSO_EE_OFFENDER\fP マクロは、この補助的なメッセージを引き数に取って、
+エラーの発生したネットワークオブジェクトのアドレスへのポインタを返す。 アドレスが不明の場合には、 \fIsockaddr\fP の \fIsa_family\fP
+メンバーが \fBAF_UNSPEC\fP になっている。 \fIsockaddr\fP の他のフィールドは不定である。
 エラーの発生したパケットのペイロードは通常のデータとして渡される。
 .IP
-ローカルでのエラーの場合にはアドレスは渡されない (これは
-.I cmsghdr
-の
-.I cmsg_len
-メンバーでチェックできる)。
-エラーを受け取った場合、
-.B MSG_ERRQUEUE
-が
-.I msghdr
-に設定される。
-エラーが渡された後には、
-処理待ちになっていたソケット・エラーが、キューに入っている
-次のエラーに基づいて再生成され、次のソケット操作の際に渡される。
-.TP
-.B MSG_OOB
-このフラグは、通常のデータ・ストリームでは受信できない
-帯域外 (out-of-band) データの受信を要求する。
-プロトコルによっては、
-通常のデータ・キューの先頭に速達データを置くものがあるが、
-そのようなプロトコルではこのフラグは使用できない。
-.TP
-.B MSG_PEEK
-このフラグを指定すると、
-受信キューの最初のデータを返すとき、キューからデータを削除しない。
+ローカルなエラーの場合はアドレスは渡されない
+(これは \fIcmsghdr\fP の \fIcmsg_len\fP メンバーでチェックできる)。
+受信エラーの場合は \fBMSG_ERRQUIE\fP が \fImsghdr\fP にセットされる。
+エラーが渡された後には、キューに入っている次のエラーに基いて、
+処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。
+.TP 
+\fBMSG_OOB\fP
+このフラグは、通常のデータ・ストリームでは受信できない 帯域外 (out\-of\-band) データの受信を要求する。 プロトコルによっては、
+通常のデータ・キューの先頭に速達データを置くものがあるが、 そのようなプロトコルではこのフラグは使用できない。
+.TP 
+\fBMSG_PEEK\fP
+このフラグを指定すると、 受信キューの最初のデータを返すとき、キューからデータを削除しない。
 したがって、この後でもう一度受信コールを呼び出すと、同じデータが返ることになる。
-.TP
-.BR MSG_TRUNC " (Linux 2.2 以降)"
-raw ソケット
-.RB ( AF_PACKET )、
-Internet datagram  ソケット (Linux 2.4.27/2.6.8 以降)、
-netlink (Linux 2.6.22 以降) ソケットの場合、
-パケットやデータグラムの長さが渡したバッファよりも長かった場合にも、
-パケットやデータグラムの実際の長さを返す。
-UNIX ドメインソケット
-.RB ( unix (7))
-ソケットについては実装されていない。
+.TP 
+\fBMSG_TRUNC\fP (Linux 2.2 以降)
+raw ソケット (\fBAF_PACKET\fP)、 Internet datagram ソケット (Linux 2.4.27/2.6.8 以降)、
+netlink (Linux 2.6.22 以降) ソケットの場合、 パケットやデータグラムの長さが渡したバッファよりも長かった場合にも、
+パケットやデータグラムの実際の長さを返す。 UNIX ドメインソケット (\fBunix\fP(7))  ソケットについては実装されていない。
 
-Internet ストリームソケットでの利用については
-.BR tcp (7)
-を参照。
-.TP
-.BR MSG_WAITALL " (Linux 2.2 以降)"
-このフラグは、要求した量いっぱいのデータが到着するまで、
-操作を停止 (block) するよう要求する。
-但し、シグナルを受信したり、エラーや切断 (disconnect) が発生したり、
-次に受信されるデータが異なる型だったりした場合には、
-要求した量よりデータが少なくても返ることがある。
+Internet ストリームソケットでの利用については \fBtcp\fP(7)  を参照。
+.TP 
+\fBMSG_WAITALL\fP (Linux 2.2 以降)
+このフラグは、要求した量いっぱいのデータが到着するまで、 操作を停止 (block) するよう要求する。 但し、シグナルを受信したり、エラーや切断
+(disconnect) が発生したり、 次に受信されるデータが異なる型だったりした場合には、 要求した量よりデータが少なくても返ることがある。
 .PP
-.BR recvmsg ()
-コールは、直接渡す引き数の数を減らすために
-.I msghdr
-構造体を使用する。この構造体は
-.I <sys/socket.h>
-で以下のように定義されている:
+\fBrecvmsg\fP()  コールは、直接渡す引き数の数を減らすために \fImsghdr\fP 構造体を使用する。この構造体は
+\fI<sys/socket.h>\fP で以下のように定義されている:
 .in +4n
 .nf
 
@@ -325,43 +184,23 @@ struct iovec {                    /* Scatter/gather array items */
 };
 
 struct msghdr {
-    void         *msg_name;       /* optional address */
-    socklen_t     msg_namelen;    /* size of address */
-    struct iovec *msg_iov;        /* scatter/gather array */
-    size_t        msg_iovlen;     /* # elements in msg_iov */
-    void         *msg_control;    /* ancillary data, see below */
-    size_t        msg_controllen; /* ancillary data buffer len */
-    int           msg_flags;      /* flags on received message */
+    void         *msg_name;       /* 追加のアドレス */
+    socklen_t     msg_namelen;    /* アドレスのサイズ */
+    struct iovec *msg_iov;        /* scatter/gather 配列 */
+    size_t        msg_iovlen;     /* msg_iov の要素数 */
+    void         *msg_control;    /* 補助データ (後述) */
+    size_t        msg_controllen; /* 補助データバッファ長 */
+    int           msg_flags;      /* 受信メッセージのフラグ */
 };
 .fi
 .in
 .PP
-.I msg_name
-と
-.I msg_namelen
-は、ソケットが接続されていない場合に送信元のアドレスを指定する。
-名前が必要ない場合には
-.I msg_name
-に NULL ポインタを指定する。
-.I msg_iov
-と
-.I msg_iovlen
-フィールドは
-.BR readv (2)
-に記述されているような分解/結合用のベクトル (scatter-gather locations)
-を指定する。
-.I msg_control
-フィールドは
-.I msg_controllen
-の長さを持ち、他のプロトコル制御メッセージや
-種々の補助データのためのバッファへのポインタである。
-.BR recvmsg ()
-を呼ぶ際には、
-.I msg_controllen
-に
-.I msg_control
-のバッファの長さを入れておく必要がある。
-コールが成功して返った場合、制御メッセージ列の長さが入っている。
+\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
+のバッファの長さを入れておく必要がある。 コールが成功して返った場合、制御メッセージ列の長さが入っている。
 .PP
 メッセージの形式は以下の通り:
 .in +4n
@@ -370,161 +209,96 @@ struct msghdr {
 struct cmsghdr {
     socklen_t     cmsg_len;     /* data byte count, including hdr */
     int           cmsg_level;   /* originating protocol */
-    int           cmsg_type;    /* protocol-specific type */
+    int           cmsg_type;    /* protocol\-specific type */
 /* followed by
     unsigned char cmsg_data[]; */
 };
 .fi
 .in
 .PP
-補助データは、
-.BR cmsg (3)
-に定義されたマクロ経由でのみアクセスすべきである。
+補助データは、 \fBcmsg\fP(3)  に定義されたマクロ経由でのみアクセスすべきである。
 .PP
-例をあげると、 Linux はこの補助データのメカニズムを、
-UNIX ドメインソケット上での拡張エラーや IP オプション、
+例をあげると、 Linux はこの補助データのメカニズムを、 UNIX ドメインソケット上での拡張エラーや IP オプション、
 ファイル・ディスクリプタの受け渡しに利用している。
 .PP
-.I msghdr
-の
-.I msg_flags
-フィールドは
-.BR recvmsg ()
+\fImsghdr\fP の \fImsg_flags\fP フィールドは \fBrecvmsg\fP()
 からのリターン時に設定される。ここにはいくつかのフラグが入る。
-.TP
-.B MSG_EOR
-これはレコードの終り (end-of-record) を示し、
-返されたデータが完全なレコードであることを示す (一般的には
-.B SOCK_SEQPACKET
-型のソケットで使用される)。
-.TP
-.B MSG_TRUNC
-データグラムが与えられたバッファより大きかったために、
-データグラムのはみ出した部分が捨てられたことを示す。
-.TP
-.B MSG_CTRUNC
-補助データのためのバッファが不足したために、
-制御データの一部が捨てられたことを示す。
-.TP
-.B MSG_OOB
+.TP 
+\fBMSG_EOR\fP
+これはレコードの終り (end\-of\-record) を示し、 返されたデータが完全なレコードであることを示す (一般的には
+\fBSOCK_SEQPACKET\fP 型のソケットで使用される)。
+.TP 
+\fBMSG_TRUNC\fP
+データグラムが与えられたバッファより大きかったために、 データグラムのはみ出した部分が捨てられたことを示す。
+.TP 
+\fBMSG_CTRUNC\fP
+補助データのためのバッファが不足したために、 制御データの一部が捨てられたことを示す。
+.TP 
+\fBMSG_OOB\fP
 速達データや帯域外データを受信したことを示す。
-.TP
-.B MSG_ERRQUEUE
-データは受信しなかったが
-ソケットのエラー・キューから拡張エラーを受信したことを示す。
+.TP 
+\fBMSG_ERRQUEUE\fP
+データは受信しなかったが ソケットのエラー・キューから拡張エラーを受信したことを示す。
 .SH 返り値
-これらのコールは受信したバイト数を返す。
-エラーの場合は \-1 を返す。
-接続先が正しくシャットダウンを実行した場合は、返り値は 0 となる。
+これらのコールは受信したバイト数を返す。 エラーの場合は \-1 を返す。 接続先が正しくシャットダウンを実行した場合は、返り値は 0 となる。
 .SH エラー
-これらはソケット層で発生する一般的なエラーである。
-他のエラーが下層のプロトコル・モジュールで生成され、
-返されるかもしれない。
+これらはソケット層で発生する一般的なエラーである。 他のエラーが下層のプロトコル・モジュールで生成され、 返されるかもしれない。
 それらのマニュアルを参照すること。
-.TP
-.BR EAGAIN " または " EWOULDBLOCK
+.TP 
+\fBEAGAIN\fP または \fBEWOULDBLOCK\fP
 .\" Actually EAGAIN on Linux
-ソケットが非停止 (nonblocking) に設定されていて
-受信操作が停止するような状況になったか、
-受信に時間切れ (timeout) が設定されていて
-データを受信する前に時間切れになった。
-POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、
-これら 2 つの定数が同じ値を持つことも求めていない。
-したがって、移植性が必要なアプリケーションでは、両方の可能性を
-確認すべきである。
-.TP
-.B EBADF
-引き数
-.I sockfd
-が不正なディスクリプタである。
-.TP
-.B ECONNREFUSED
-リモートのホストでネットワーク接続が拒否された
-(よくある理由としては、要求したサービスが起動されていないなどがある)。
-.TP
-.B EFAULT
+ソケットが非停止 (nonblocking) に設定されていて 受信操作が停止するような状況になったか、 受信に時間切れ (timeout)
+が設定されていて データを受信する前に時間切れになった。 POSIX.1\-2001 は、この場合にどちらのエラーを返すことも認めており、 これら 2
+つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なアプリケーションでは、両方の可能性を 確認すべきである。
+.TP 
+\fBEBADF\fP
+引き数 \fIsockfd\fP が不正なディスクリプタである。
+.TP 
+\fBECONNREFUSED\fP
+リモートのホストでネットワーク接続が拒否された (よくある理由としては、要求したサービスが起動されていないなどがある)。
+.TP 
+\fBEFAULT\fP
 受信バッファへのポインタがプロセスのアドレス空間外を指している。
-.TP
-.B EINTR
-データを受信する前に、シグナルが配送されて割り込まれた。
-.BR signal (7)
-参照。
-.TP
-.B EINVAL
-不正な引き数が渡された。
+.TP 
+\fBEINTR\fP
+データを受信する前に、シグナルが配送されて割り込まれた。 \fBsignal\fP(7)  参照。
+.TP 
+\fBEINVAL\fP
 .\" e.g., msg_namelen < 0 for recvmsg() or addrlen < 0 for recvfrom()
-.TP
-.B ENOMEM
-.BR recvmsg ()
-のためのメモリが確保できなかった。
-.TP
-.B ENOTCONN
-ソケットに接続指向プロトコルが割り当てられており、
-まだ接続されていない
-.RB ( connect (2)
-と
-.BR accept (2)
+不正な引き数が渡された。
+.TP 
+\fBENOMEM\fP
+\fBrecvmsg\fP()  のためのメモリが確保できなかった。
+.TP 
+\fBENOTCONN\fP
+ソケットに接続指向プロトコルが割り当てられており、 まだ接続されていない (\fBconnect\fP(2)  と \fBaccept\fP(2)
 を参照のこと)。
-.TP
-.B ENOTSOCK
-引き数
-.I sockfd
-がソケットを参照していない。
+.TP 
+\fBENOTSOCK\fP
+引き数 \fIsockfd\fP がソケットを参照していない。
 .SH 準拠
-4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1-2001。
+4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1\-2001。
 .LP
-POSIX.1-2001 では、
-.BR MSG_OOB ,
-.BR MSG_PEEK ,
-.B MSG_WAITALL
-フラグだけが記載されている。
+POSIX.1\-2001 では、 \fBMSG_OOB\fP, \fBMSG_PEEK\fP, \fBMSG_WAITALL\fP フラグだけが記載されている。
 .SH 注意
-上記のプロトタイプは glibc2 にしたがっている。
-Single UNIX Specification でも同様だが、
-返り値の型が \fIssize_t\fP となっている
-(一方で 4.x BSD や libc4 や libc5 は全て \fIint\fP を使用している)。
-.I flags
-引き数は 4.x BSD では \fIint\fP だが、libc4 と libc5 では \fIunsigned int\fP である。
-.I len
-引き数は 4.x BSD では \fIint\fP だが、 libc4 と libc5 では \fIsize_t\fP である。
-.I addrlen
-引き数は 4.x BSD, libc4, libc5 では \fIint\ *\fP である。
-現在の \fIsocklen_t\ *\fP は POSIX で発案された。
-.BR accept (2)
-も参照すること。
+上記のプロトタイプは glibc2 にしたがっている。 Single UNIX Specification でも同様だが、 返り値の型が
+\fIssize_t\fP となっている (一方で 4.x BSD や libc4 や libc5 は全て \fIint\fP を使用している)。 \fIflags\fP
+引き数は 4.x BSD では \fIint\fP だが、libc4 と libc5 では \fIunsigned int\fP である。 \fIlen\fP 引き数は
+4.x BSD では \fIint\fP だが、 libc4 と libc5 では \fIsize_t\fP である。 \fIaddrlen\fP 引き数は 4.x
+BSD, libc4, libc5 では \fIint\ *\fP である。 現在の \fIsocklen_t\ *\fP は POSIX で発案された。
+\fBaccept\fP(2)  も参照すること。
 
-POSIX.1-2001 では、構造体
-.I msghdr
-のフィールド
-.I msg_controllen
-は
-.I socklen_t
-型であるべきだとされているが、
-現在の glibc では
-.I size_t
-型である。
 .\" glibc bug raised 12 Mar 2006
 .\" http://sourceware.org/bugzilla/show_bug.cgi?id=2448
 .\" The problem is an underlying kernel issue: the size of the
 .\" __kernel_size_t type used to type this field varies
 .\" across architectures, but socklen_t is always 32 bits.
+POSIX.1\-2001 では、構造体 \fImsghdr\fP のフィールド \fImsg_controllen\fP は \fIsocklen_t\fP
+型であるべきだとされているが、 現在の glibc では \fIsize_t\fP 型である。
 
-.BR recvmmsg (2)
-には、一度の呼び出しでの複数のデータグラムに使用できる Linux 固有の
-システムコールに関する情報が書かれている。
+\fBrecvmmsg\fP(2)  には、一度の呼び出しでの複数のデータグラムに使用できる Linux 固有の システムコールに関する情報が書かれている。
 .SH 例
-.BR recvfrom ()
-の利用例が
-.BR getaddrinfo (3)
-に記載されている。
+\fBrecvfrom\fP()  の利用例が \fBgetaddrinfo\fP(3)  に記載されている。
 .SH 関連項目
-.BR fcntl (2),
-.BR getsockopt (2),
-.BR read (2),
-.BR recvmmsg (2),
-.BR select (2),
-.BR shutdown (2),
-.BR socket (2),
-.BR cmsg (3),
-.BR sockatmark (3),
-.BR socket (7)
+\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)