.TP
\fBMSG_COPY\fP (Linux 3.8 以降)
.\" commit 4a674f34ba04a002244edaf891b5da7fc1473ae8
-Nondestructively fetch a copy of the message at the ordinal position in the
-queue specified by \fImsgtyp\fP (messages are considered to be numbered
-starting at 0).
+キューの中で \fImsgtyp\fP で指定した位置にあるメッセージのコピーを、キューを変更せずに (非破壊的に) 取り出す (メッセージの位置は 0
+から順番に番号が割り当てられる)。
-This flag must be specified in conjunction with \fBIPC_NOWAIT\fP, with the
-result that, if there is no message available at the given position, the
-call fails immediately with the error \fBENOMSG\fP. Because they alter the
-meaning of \fImsgtyp\fP in orthogonal ways, \fBMSG_COPY\fP and \fBMSG_EXCEPT\fP may
-not both be specified in \fImsgflg\fP.
+このフラグは \fBIPC_NOWAIT\fP と組み合わせて指定しなければならない。 その結果、指定した位置にメッセージがなかった場合、呼び出しはエラー
+\fBENOMSG\fP ですぐに失敗する。 \fBMSG_COPY\fP と \fBMSG_EXCEPT\fP は \fImsgtyp\fP
+の意味を相容れない方法で使用するため、この二つのフラグの両方を \fImsgtyp\fP に指定することはできない。
-The \fBMSG_COPY\fP flag was added for the implementation of the kernel
-checkpoint\-restore facility and is available only if the kernel was built
-with the \fBCONFIG_CHECKPOINT_RESTORE\fP option.
+\fBMSG_COPY\fP フラグは、 カーネルのチェックポイント復元 (checkpoint\-restore) 機能の実装のために追加された。
+このフラグはカーネルが \fBCONFIG_CHECKPOINT_RESTORE\fP オプションを有効にして作成された場合にのみ利用できる。
.TP
\fBMSG_EXCEPT\fP
0 より大きな \fImsgtyp\fP と一緒に使用して、 \fImsgtyp\fP 以外のキューの最初のメッセージを読み込む。
\fImsgqid\fP が不正か、 \fImsgsz\fP が 0 より小さい。
.TP
\fBEINVAL\fP (Linux 3.14 以降)
-\fImsgflg\fP specified \fBMSG_COPY\fP, but not \fBIPC_NOWAIT\fP.
+\fImsgflg\fP に \fBMSG_COPY\fP が指定されたが、 \fBIPC_NOWAIT\fP が指定されていない。
.TP
\fBEINVAL\fP (Linux 3.14 以降)
-\fImsgflg\fP specified both \fBMSG_COPY\fP and \fBMSG_EXCEPT\fP.
+\fImsgflg\fP に \fBMSG_COPY\fP と \fBMSG_EXCEPT\fP の両方が指定された。
.TP
\fBENOMSG\fP
\fImsgflg\fP に \fBIPC_NOWAIT\fP が設定されており、 メッセージ・キューに要求された型のメッセージが存在しなかった。
未満のメッセージしか入っていなかった。
.TP
\fBENOSYS\fP (Linux 3.8 以降)
-\fIMSG_COPY\fP was specified in \fImsgflg\fP, and this kernel was configured
-without \fBCONFIG_CHECKPOINT_RESTORE\fP.
+\fImsgflg\fP に \fIMSG_COPY\fP が指定されたが、カーネルが \fBCONFIG_CHECKPOINT_RESTORE\fP
+なしで作成されている。
.SH 準拠
SVr4, POSIX.1\-2001.
.\" MSG_COPY since glibc 2.18
-The \fBMSG_EXCEPT\fP and \fBMSG_COPY\fP flags are Linux\-specific; their
-definitions can be obtained by defining the \fB_GNU_SOURCE\fP feature test
-macro.
+フラグ \fBMSG_EXCEPT\fP と \fBMSG_COPY\fP は Linux 固有である。 これらの定義を得るには、機能検査マクロ
+\fB_GNU_SOURCE\fP を定義する。
.SH 注意
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
.SH バグ
.\" FIXME http://marc.info/?l=linux-kernel&m=139048542803605&w=2
.\" commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c
-In Linux 3.13 and earlier, if \fBmsgrcv\fP() was called with the \fBMSG_COPY\fP
-flag, but without \fBIPC_NOWAIT\fP, and the message queue contained less than
-\fImsgtyp\fP messages, then the call would block until the next message is
-written to the queue. At that point, the call would return a copy of the
-message, \fIregardless\fP of whether that message was at the ordinal position
-\fImsgtyp\fP. This bug is fixed in Linux 3.14.
+Linux 3.13 以前では、 \fBmsgrcv\fP() の呼び出しで \fBMSG_COPY\fP フラグは指定されたが \fBIPC_NOWAIT\fP
+は指定されず、かつメッセージキューに \fImsgtyp\fP 未満のメッセージしかない場合に、 \fBmsgrcv\fP()
+の呼び出しはキューに次のメッセージが書き込まれるまで停止していた。 新しいメッセージが書き込まれた時点で、 そのメッセージが指定された位置
+\fImsgtyp\fP かどうかに\fI関わらず\fP、 \fBmsgrcv\fP() の呼び出しは新たに書き込まれたメッセージのコピーを返していた。 このバグは
+Linux 3.14で修正された。
.\" FIXME http://marc.info/?l=linux-kernel&m=139048542803605&w=2
.\" commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c
-Specifying both \fBMSG_COPY\fP and \fBMSC_EXCEPT\fP in \fImsgflg\fP is a logical
-error (since these flags impose different interpretations on \fImsgtyp\fP). In
-Linux 3.13 and earlier, this error was not diagnosed by \fBmsgrcv\fP(). This
-bug is fixed in Linux 3.14.
+\fImsg_copy\fP に \fBMSG_COPY\fP と \fBMSG_EXCEPT\fP の両方を指定するのは、論理的なエラーである
+(なぜならこれらのフラグは \fImsgtyp\fP を別の意味で解釈するからである)。 Linux 3.13 以前では、\fBmsgrcv\fP()
+がこのエラーを検出しなかった。 このバグは Linux 3.14 で修正された。
.SH 関連項目
\fBmsgctl\fP(2), \fBmsgget\fP(2), \fBcapabilities\fP(7), \fBmq_overview\fP(7),
\fBsvipc\fP(7)