OSDN Git Service

(split) LDP: Update the version to 3.53 in PO files
[linuxjm/LDP_man-pages.git] / draft / man2 / msgop.2
index 4a1d2a3..3bb7ff0 100644 (file)
@@ -1,5 +1,6 @@
 .\" Copyright 1993 Giorgio Ciucci <giorgio@crcc.it>
 .\"
+.\" %%%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.
@@ -19,6 +20,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified Tue Oct 22 16:40:11 1996 by Eric S. Raymond <esr@thyrsus.com>
 .\" Modified Mon Jul 10 21:09:59 2000 by aeb
 .\"    Added notes on /proc files
 .\" FIXME . Add example programs to this page.
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated 1997-02-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Modified 2000-09-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated 2002-11-26, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2005-03-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-03-05, Akihiro MOTOKI, LDP v2.25
-.\" Updated 2008-08-09, Akihiro MOTOKI, LDP v3.05
+.\"*******************************************************************
 .\"
-.\"WORD:       message                 ¥á¥Ã¥»¡¼¥¸
-.\"WORD:       operation               Áàºî
-.\"WORD:       queue                   ¥­¥å¡¼
-.\"WORD:       process                 ¥×¥í¥»¥¹
-.\"WORD:       catch                   Êá³Í(catch)
-.\"WORD:       signal                  ¥·¥°¥Ê¥ë
-.\"WORD:       suspend                 Ää»ß(suspend)
-.\"WORD:       sleep                   Ää»ß(sleep)
-.\"WORD:       block                   Ää»ß(block)
-.\"WORD:       process-ID              ¥×¥í¥»¥¹ID
-.\"WORD:       type                    ·¿
-.\"WORD:       policy                  Êý¿Ë
-.\"WORD:       super-user              ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼
-.\"WORD:       current time            ¸½ºß»þ¹ï
-.\"WORD:       implement               ¼ÂÁõ
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH MSGOP 2 2008-04-23 "Linux" "Linux Programmer's Manual"
-.\"O .SH NAME
-.SH Ì¾Á°
-.\"O msgrcv, msgsnd \- message operations
-msgrcv, msgsnd \- ¥á¥Ã¥»¡¼¥¸Áàºî
-.\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.\"*******************************************************************
+.TH MSGOP 2 2012\-05\-31 Linux "Linux Programmer's Manual"
+.SH 名前
+msgrcv, msgsnd \- System V メッセージキュー操作
+.SH 書式
 .nf
-.B #include <sys/types.h>
-.B #include <sys/ipc.h>
-.B #include <sys/msg.h>
+\fB#include <sys/types.h>\fP
+\fB#include <sys/ipc.h>\fP
+\fB#include <sys/msg.h>\fP
 .sp
-.BI "int msgsnd(int " msqid ", const void *" msgp ", size_t " msgsz \
-", int " msgflg );
+\fBint msgsnd(int \fP\fImsqid\fP\fB, const void *\fP\fImsgp\fP\fB, size_t \fP\fImsgsz\fP\fB, int \fP\fImsgflg\fP\fB);\fP
 .sp
-.BI "ssize_t msgrcv(int " msqid ", void *" msgp ", size_t " msgsz \
-", long " msgtyp ,
-.BI "               int " msgflg );
+\fBssize_t msgrcv(int \fP\fImsqid\fP\fB, void *\fP\fImsgp\fP\fB, size_t \fP\fImsgsz\fP\fB, long \fP\fImsgtyp\fP\fB,\fP
+\fB               int \fP\fImsgflg\fP\fB);\fP
 .fi
-.\"O .SH DESCRIPTION
-.SH ÀâÌÀ
-.\"O The
-.\"O .BR msgsnd ()
-.\"O and
-.\"O .BR msgrcv ()
-.\"O system calls are used, respectively, to send messages to,
-.\"O and receive messages from, a message queue.
-.\"O The calling process must have write permission on the message queue
-.\"O in order to send a message, and read permission to receive a message.
-¥·¥¹¥Æ¥à¥³¡¼¥ë
-.BR msgsnd ()
-¤È
-.BR msgrcv ()
-¤Ï¤½¤ì¤¾¤ì¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Ø¤Î¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¤È¡¢
-¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®¤Ë»ÈÍѤµ¤ì¤ë¡£¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï¡¢
-¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë¤¿¤á¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤ò¡¢
-¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¤ÏÆɤ߽Ф·µö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+.SH 説明
+システムコール \fBmsgsnd\fP()  と \fBmsgrcv\fP()  はそれぞれ、 System V メッセージ・キューへのメッセージの送信と、
+メッセージの受信に使用される。呼び出し元プロセスは、 メッセージを送信するためにはメッセージ・キューに対する書き込み許可を、
+メッセージを受信するためには読み出し許可を持っていなければならない。
 .PP
-.\"O The
-.\"O .I msgp
-.\"O argument is a pointer to caller-defined structure
-.\"O of the following general form:
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï°Ê²¼¤Ë¼¨¤¹¹½Â¤ÂΤòÍÑ°Õ¤·¡¢¤³¤Î¹½Â¤ÂΤؤÎ
-¥Ý¥¤¥ó¥¿¤ò
-.msgp
-°ú¤­¿ô¤È¤·¤ÆÅϤ¹¡£
+呼び出し元プロセスは以下に示す構造体を用意し、この構造体への ポインタを \fImsgp\fP 引き数として渡す。
 .in +4n
 .nf
 
@@ -116,633 +72,166 @@ struct msgbuf {
 .fi
 .in
 .PP
-.\"O The
-.\"O .I mtext
-.\"O field is an array (or other structure) whose size is specified by
-.\"O .IR msgsz ,
-.\"O a nonnegative integer value.
-.I mtext
-¥Õ¥£¡¼¥ë¥É¤ÏÇÛÎó (¤Þ¤¿¤Ï¾¤Î¹½Â¤ÂÎ) ¤Ç¡¢¤½¤ÎÂ礭¤µ¤Ï
-ÈóÉé¤ÎÀ°¿ô¤Ç¤¢¤ë
-.I msgsz
-¤Ç»ØÄꤵ¤ì¤ë¡£
-.\"O Messages of zero length (i.e., no
-.\"O .I mtext
-.\"O field) are permitted.
-Ťµ 0 ¤Î¥á¥Ã¥»¡¼¥¸ (¤Ä¤Þ¤ê
-.I mtext
-¥Õ¥£¡¼¥ë¥É¤¬¤Ê¤¤¥á¥Ã¥»¡¼¥¸) ¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£
-.\"O The
-.\"O .I mtype
-.\"O field must have a strictly positive integer value.
-.\"O This value can be
-.\"O used by the receiving process for message selection
-.\"O (see the description of
-.\"O .BR msgrcv ()
-.\"O below).
-.B mtype
-¥Õ¥£¡¼¥ë¥É¤Ï¸·Ì©¤ËÀµ¤ÎÀ°¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¤³¤ÎÃͤϡ¢¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¥×¥í¥»¥¹¤Ç¥á¥Ã¥»¡¼¥¸¤òÁªÂò¤¹¤ë¤¿¤á¤Ë
-»ÈÍѤµ¤ì¤ë (²¼µ­¤Î
-.BR msgrcv ()
-¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È)¡£
+\fImtext\fP フィールドは配列 (または他の構造体) で、その大きさは 非負の整数である \fImsgsz\fP で指定される。 長さ 0 のメッセージ
+(つまり \fImtext\fP フィールドがないメッセージ) も認められている。 \fBmtype\fP フィールドは厳密に正の整数でなければならない。
+この値は、メッセージを受信するプロセスでメッセージを選択するために 使用される (下記の \fBmsgrcv\fP()  の説明を参照のこと)。
 .SS msgsnd()
-.\"O The
-.\"O .BR msgsnd ()
-.\"O system call appends a copy of the message pointed to by
-.\"O .I msgp
-.\"O to the message queue whose identifier is specified
-.\"O by
-.\"O .IR msqid .
-.BR msgsnd ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
-.I msgp
-°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤ò
-.I msqid
-¤Ç»ØÄꤵ¤ì¤¿¼±Ê̻Ҥò»ý¤Ä¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ØÄɲ乤롣
+\fBmsgsnd\fP()  システムコールは \fImsgp\fP 引き数で指定されたメッセージのコピーを \fImsqid\fP
+で指定された識別子を持つメッセージ・キューへ追加する。
 .PP
-.\"O If sufficient space is available in the queue,
-.\"O .BR msgsnd ()
-.\"O succeeds immediately.
-¥­¥å¡¼¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤¢¤ë¾ì¹ç¡¢
-.BR msgsnd ()
-¤Ïľ¤Á¤ËÀ®¸ù¤¹¤ë¡£
-.\"O (The queue capacity is defined by the
-.\"O .I msg_qbytes
-.\"O field in the associated data structure for the message queue.
-.\"O During queue creation this field is initialized to
-.\"O .B MSGMNB
-.\"O bytes, but this limit can be modified using
-.\"O .BR msgctl (2).)
-(¥­¥å¡¼¤ÎÍÆÎ̤ϡ¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤÎ
-.I msg_qbytes
-¥Õ¥£¡¼¥ë¥É¤ÇÄêµÁ¤µ¤ì¤ë¡£
-¥­¥å¡¼ºîÀ®»þ¤Ë¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï
-.B MSGMNB
-¤Ë½é´ü²½¤µ¤ì¤ë¤¬¡¢¤³¤ÎÀ©¸Â¤Ï
-.BR msgctl (2)
-¤ò»È¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£)
-.\"O If insufficient space is available in the queue, then the default
-.\"O behavior of
-.\"O .BR msgsnd ()
-.\"O is to block until space becomes available.
-¥­¥å¡¼¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤Ê¤¤¾ì¹ç¡¢
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï
-.BR msgsnd ()
-¤Ï¶õ¤­ÍÆÎ̤¬¤Ç¤­¤ë¤Þ¤ÇÄä»ß (block) ¤¹¤ë¡£
-.\"O If
-.\"O .B IPC_NOWAIT
-.\"O is specified in
-.\"O .IR msgflg ,
-.\"O then the call instead fails with the error
-.\"O .BR EAGAIN .
-.I msgflg
-¤Ë
-.B IPC_NOWAIT
-¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢¥¨¥é¡¼
-.B EAGAIN
-¤Ç¼ºÇÔ¤¹¤ë¡£
+キューに十分な空き容量がある場合、 \fBmsgsnd\fP()  は直ちに成功する。 (キューの容量は、メッセージ・キューのデータ構造体の
+\fImsg_qbytes\fP フィールドで定義される。 キュー作成時にこのフィールドは \fBMSGMNB\fP に初期化されるが、この制限は
+\fBmsgctl\fP(2)  を使って変更できる。)  キューに十分な空き容量がない場合、 デフォルトでは \fBmsgsnd\fP()
+は空き容量ができるまで停止 (block) する。 \fImsgflg\fP に \fBIPC_NOWAIT\fP が指定された場合は、エラー \fBEAGAIN\fP
+で失敗する。
 
-.\"O A blocked
-.\"O .BR msgsnd ()
-.\"O call may also fail if:
-Ää»ß¤·¤Æ¤¤¤ë
-.BR msgsnd ()
-¤Ï°Ê²¼¤Î¾ì¹ç¤Ë¤â¼ºÇÔ¤¹¤ë¡£
+停止している \fBmsgsnd\fP()  は以下の場合にも失敗する。
 .IP * 2
-.\"O the queue is removed,
-.\"O in which case the system call fails with
-.\"O .I errno
-.\"O set to
-.\"O .BR EIDRM ;
-.\"O or
-¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£
-¤³¤Î¾ì¹ç¡¢
-.I errno
-¤Ï
-.B EIDRM
-¤ËÀßÄꤵ¤ì¤ë¡£
+キューが削除された。 この場合、 \fIerrno\fP は \fBEIDRM\fP に設定される。
 .IP *
-.\"O a signal is caught, in which case the system call fails
-.\"O with
-.\"O .I errno
-.\"O set to
-.\"O .BR EINTR ; see
-.\"O .BR signal (7).
-¥·¥°¥Ê¥ë¤¬Ê᪤µ¤ì¤¿¡£
-¤³¤Î¾ì¹ç¡¢
-.I errno
-¤Ï
-.BR EINTR
-¤ËÀßÄꤵ¤ì¤ë¡£
-.BR signal (7)
-»²¾È¡£
-.\"O .RB ( msgsnd ()
-.\"O is never automatically restarted after being interrupted by a
-.\"O signal handler, regardless of the setting of the
-.\"O .B SA_RESTART
-.\"O flag when establishing a signal handler.)
-.RB ( msgsnd ()
-¤Ï¡¢¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë
-.B SA_RESTART
-¤ò»ØÄꤷ¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ç
-¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£)
+シグナルが捕捉された。 この場合、 \fIerrno\fP は \fBEINTR\fP に設定される。 \fBsignal\fP(7)  参照。 (\fBmsgsnd\fP()
+は、たとえシグナルハンドラの設定時に \fBSA_RESTART\fP を指定していたとしても、シグナルハンドラによって割り込まれた後で
+自動的に再スタートすることは決してない。)
 .PP
-.\"O Upon successful completion the message queue data structure is updated
-.\"O as follows:
-Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë
-¹¹¿·¤µ¤ì¤ë:
+正常に終了した場合、メッセージ・キューのデータ構造体は以下のように 更新される:
 .IP
-.\"O .I msg_lspid
-.\"O is set to the process ID of the calling process.
-.I msg_lspid
-¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£
+\fImsg_lspid\fP には呼び出し元プロセスのプロセス ID が設定される。
 .IP
-.\"O .I msg_qnum
-.\"O is incremented by 1.
-.I msg_qnum
-¤Ï 1 Áý²Ã¤¹¤ë¡£
+\fImsg_qnum\fP は 1 増加する。
 .IP
-.\"O .I msg_stime
-.\"O is set to the current time.
-.I msg_stime
-¤Ë¤Ï¸½ºß»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£
+\fImsg_stime\fP には現在時刻が設定される。
 .SS msgrcv()
-.\"O The
-.\"O .BR msgrcv ()
-.\"O system call removes a message from the queue specified by
-.\"O .I msqid
-.\"O and places it in the buffer
-.\"O pointed to by
-.\"O .IR msgp .
-.BR msgrcv ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
-.I msqid
-¤Ç»ØÄꤵ¤ì¤¿¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤òºï½ü¤·¡¢
-.I msgp
-¤Ç»ØÄꤵ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ë¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ë¡£
+\fBmsgrcv\fP()  システムコールは \fImsqid\fP で指定されたキューからメッセージを削除し、 \fImsgp\fP
+で指定されたバッファにそのメッセージを格納する。
 .PP
-.\"O The argument
-.\"O .I msgsz
-.\"O specifies the maximum size in bytes for the member
-.\"O .I mtext
-.\"O of the structure pointed to by the
-.\"O .I msgp
-.\"O argument.
-.I msgsz
-°ú¤­¿ô¤Ë¤Ï
-.I msgp
-°ú¤­¿ô¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤÎ
-.I mtext
-¥á¥ó¥Ð¡¼¤ÎºÇÂç¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£
-.\"O If the message text has length greater than
-.\"O .IR msgsz ,
-.\"O then the behavior depends on whether
-.\"O .B MSG_NOERROR
-.\"O is specified in
-.\"O .IR msgflg .
-.\"O If
-.\"O .B MSG_NOERROR
-.\"O is specified, then
-.\"O the message text will be truncated (and the truncated part will be
-.\"O lost); if
-.\"O .B MSG_NOERROR
-.\"O is not specified, then
-.\"O the message isn't removed from the queue and
-.\"O the system call fails returning \-1 with
-.\"O .I errno
-.\"O set to
-.\"O .BR E2BIG .
-¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤¬
-.I msgsz
-¤è¤êÂ礭¤¤¾ì¹ç¤ÎÆ°ºî¤Ï¡¢
-.I msgflg
-¤Ë
-.B MSG_NOERROR
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ç·è¤Þ¤ë¡£
-.B MSG_NOERROR
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë
-(ÀÚ¤ê¼Î¤Æ¤é¤ì¤¿Éôʬ¤Ï¼º¤ï¤ì¤ë)¡£
-.B MSG_NOERROR
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥á¥Ã¥»¡¼¥¸¤Ï¥­¥å¡¼¤«¤éºï½ü¤µ¤ì¤º¡¢
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï \-1 ¤òÊÖ¤·¤Æ¼ºÇÔ¤·¡¢
-.I errno
-¤Ë
-.B E2BIG
-¤¬ÀßÄꤵ¤ì¤ë¡£
+\fImsgsz\fP 引き数には \fImsgp\fP 引き数で指定された構造体の \fImtext\fP メンバーの最大のバイト数を指定する。
+メッセージのテキストの長さが \fImsgsz\fP より大きい場合の動作は、 \fImsgflg\fP に \fBMSG_NOERROR\fP
+が指定されているかどうかで決まる。 \fBMSG_NOERROR\fP が指定されていれば、メッセージのテキストは切り詰められる
+(切り捨てられた部分は失われる)。 \fBMSG_NOERROR\fP が指定されていなければ、メッセージはキューから削除されず、 システムコールは \-1
+を返して失敗し、 \fIerrno\fP に \fBE2BIG\fP が設定される。
 .PP
-.\"O The argument
-.\"O .I msgtyp
-.\"O specifies the type of message requested as follows:
-.I msgtyp
-°ú¤­¿ô¤Ë¤ÏÍ׵᤹¤ë¥á¥Ã¥»¡¼¥¸¤Î·¿¤ò»ØÄꤹ¤ë¡£
-·¿¤Ï°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤹ¤ë:
+\fImsgtyp\fP 引き数には要求するメッセージの型を指定する。 型は以下のように指定する:
 .IP * 2
-.\"O If
-.\"O .I msgtyp
-.\"O is 0,
-.\"O then the first message in the queue is read.
-.I msgtyp
-¤¬ 0 ¤Ê¤é¤Ð¡¢¥­¥å¡¼¤ÎºÇ½é¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£
+\fImsgtyp\fP が 0 ならば、キューの最初にあるメッセージが読み込まれる。
 .IP *
-.\"O If
-.\"O .I msgtyp
-.\"O is greater than 0,
-.\"O then the first message in the queue of type
-.\"O .I msgtyp
-.\"O is read, unless
-.\"O .B MSG_EXCEPT
-.\"O was specified in
-.\"O .IR msgflg ,
-.\"O in which case
-.\"O the first message in the queue of type not equal to
-.\"O .I msgtyp
-.\"O will be read.
-.I msgtyp
-¤¬ 0 ¤è¤êÂ礭¤¤¾ì¹ç¡¢
-.I msgflg
-¤Ë
-.B MSG_EXCEPT
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢
-.I msgtyp
-·¿¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£
-.B MSG_EXCEPT
-¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢
-.I msgtyp
-·¿°Ê³°¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£
+\fImsgtyp\fP が 0 より大きい場合、 \fImsgflg\fP に \fBMSG_EXCEPT\fP が指定されていなければ、 \fImsgtyp\fP
+型のキューの最初のメッセージが読み込まれる。 \fBMSG_EXCEPT\fP が指定された場合は、 \fImsgtyp\fP
+型以外のキューの最初のメッセージが読み込まれる。
 .IP *
-.\"O If
-.\"O .I msgtyp
-.\"O is less than 0,
-.\"O then the first message in the queue with the lowest type less than or
-.\"O equal to the absolute value of
-.\"O .I msgtyp
-.\"O will be read.
-.I msgtyp
-¤¬ 0 ¤è¤ê¾®¤µ¤±¤ì¤Ð¡¢
-.I msgtyp
-¤ÎÀäÂÐÃͰʲ¼¤ÇºÇ¤â¾®¤µ¤¤·¿¤ò»ý¤Ä¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤¬Æɤ߹þ¤Þ¤ì¤ë¡£
+\fImsgtyp\fP が 0 より小さければ、 \fImsgtyp\fP の絶対値以下で最も小さい型を持つキューの最初のメッセージが読み込まれる。
 .PP
-.\"O The
-.\"O .I msgflg
-.\"O argument is a bit mask constructed by ORing together zero or more
-.\"O of the following flags:
-.I msgflg
-°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤òǤ°Õ¤Î¿ô¤À¤± (0¸Ä¤â²Ä)¡¢¤³¤ì¤é¤Î OR ¤Ç»ØÄꤹ¤ë:
-.TP
-.B IPC_NOWAIT
-.\"O Return immediately if no message of the requested type is in the queue.
-.\"O The system call fails with
-.\"O .I errno
-.\"O set to
-.\"O .BR ENOMSG .
-¥­¥å¡¼¤ËÍ׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ïľ¤Á¤ËÊ֤롣
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢
-.I errno
-¤Ë¤Ï
-.B ENOMSG
-¤¬ÀßÄꤵ¤ì¤ë¡£
-.TP
-.B MSG_EXCEPT
-.\"O Used with
-.\"O .I msgtyp
-.\"O greater than 0
-.\"O to read the first message in the queue with message type that differs
-.\"O from
-.\"O .IR msgtyp .
-0 ¤è¤êÂ礭¤Ê
-.I msgtyp
-¤È°ì½ï¤Ë»ÈÍѤ·¤Æ¡¢
-.I msgtyp
-°Ê³°¤Î¥­¥å¡¼¤ÎºÇ½é¤Î¥á¥Ã¥»¡¼¥¸¤òÆɤ߹þ¤à¡£
-.TP
-.B MSG_NOERROR
-.\"O To truncate the message text if longer than
-.\"O .I msgsz
-.\"O bytes.
-.I msgsz
-¥Ð¥¤¥È¤è¤ê¤âŤ«¤Ã¤¿¾ì¹ç¤Ï¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤òÀÚ¤êµÍ¤á¤ë¡£
+\fImsgflg\fP 引き数には、以下のフラグを任意の数だけ (0個も可)、これらの OR で指定する:
+.TP 
+\fBIPC_NOWAIT\fP
+キューに要求された型のメッセージがない場合には直ちに返る。 システムコールは失敗し、 \fIerrno\fP には \fBENOMSG\fP が設定される。
+.TP 
+\fBMSG_EXCEPT\fP
+0 より大きな \fImsgtyp\fP と一緒に使用して、 \fImsgtyp\fP 以外のキューの最初のメッセージを読み込む。
+.TP 
+\fBMSG_NOERROR\fP
+\fImsgsz\fP バイトよりも長かった場合はメッセージのテキストを切り詰める。
 .PP
-.\"O If no message of the requested type is available and
-.\"O .B IPC_NOWAIT
-.\"O isn't specified in
-.\"O .IR msgflg ,
-.\"O the calling process is blocked until one of the following conditions occurs:
-Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤»¤º¡¢
-.I msgflg
-¤Ë
-.B IPC_NOWAIT
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï
-°Ê²¼¤Î¤¤¤º¤ì¤«¤Î¾õ¶·¤Ë¤Ê¤ë¤Þ¤ÇÄä»ß (block) ¤µ¤ì¤ë:
+要求された型のメッセージが存在せず、 \fImsgflg\fP に \fBIPC_NOWAIT\fP が指定されていなかった場合、呼び出し元プロセスは
+以下のいずれかの状況になるまで停止 (block) される:
 .IP * 2
-.\"O A message of the desired type is placed in the queue.
-Í׵ᤷ¤Æ¤¤¤ë·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬¥­¥å¡¼¤ØÆþ¤ì¤é¤ì¤¿¡£
+要求している型のメッセージがキューへ入れられた。
 .IP *
-.\"O The message queue is removed from the system.
-.\"O In this case the system call fails with
-.\"O .I errno
-.\"O set to
-.\"O .BR EIDRM .
-¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤¿¡£
-¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢
-.I errno
-¤Ë
-.B EIDRM
-¤¬ÀßÄꤵ¤ì¤ë¡£
+メッセージ・キューがシステムから削除された。 この場合、システムコールは失敗し、 \fIerrno\fP に \fBEIDRM\fP が設定される。
 .IP *
-.\"O The calling process catches a signal.
-.\"O In this case the system call fails with
-.\"O .I errno
-.\"O set to
-.\"O .BR EINTR .
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£
-¤³¤Î¾ì¹ç¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼ºÇÔ¤·¡¢
-.I errno
-¤Ë
-.B EINTR
-¤¬ÀßÄꤵ¤ì¤ë¡£
-.\"O .RB ( msgrcv ()
-.\"O is never automatically restarted after being interrupted by a
-.\"O signal handler, regardless of the setting of the
-.\"O .B SA_RESTART
-.\"O flag when establishing a signal handler.)
-.RB ( msgrcv ()
-¤Ï¡¢¤¿¤È¤¨¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ÎÀßÄê»þ¤Ë
-.B SA_RESTART
-¤ò»ØÄꤷ¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¸å¤Ç
-¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£)
+呼び出し元プロセスがシグナルを捕獲した。 この場合、システムコールは失敗し、 \fIerrno\fP に \fBEINTR\fP が設定される。
+(\fBmsgrcv\fP()  は、たとえシグナルハンドラの設定時に \fBSA_RESTART\fP
+を指定していたとしても、シグナルハンドラによって割り込まれた後で 自動的に再スタートすることは決してない。)
 .PP
-.\"O Upon successful completion the message queue data structure is updated
-.\"O as follows:
-¼Â¹Ô¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë
-¹¹¿·¤µ¤ì¤ë:
+正常に終了した場合、メッセージ・キューのデータ構造体は以下のように 更新される:
 .IP
-.\"O .I msg_lrpid
-.\"O is set to the process ID of the calling process.
-.I msg_lrpid
-¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤¬ÀßÄꤵ¤ì¤ë¡£
+\fImsg_lrpid\fP には呼び出し元プロセスのプロセス ID が設定される。
 .IP
-.\"O .I msg_qnum
-.\"O is decremented by 1.
-.I msg_qnum
-¤Ï 1 ¸º»»¤µ¤ì¤ë¡£
+\fImsg_qnum\fP は 1 減算される。
 .IP
-.\"O .I msg_rtime
-.\"O is set to the current time.
-.I msg_rtime
-¤Ë¤Ï¸½ºß¤Î»þ¹ï¤¬ÀßÄꤵ¤ì¤ë¡£
-.\"O .SH "RETURN VALUE"
-.SH ÊÖ¤êÃÍ
-.\"O On failure both functions return \-1
-.\"O with
-.\"O .I errno
-.\"O indicating the error,
-.\"O otherwise
-.\"O .BR msgsnd ()
-.\"O returns 0
-.\"O and
-.\"O .BR msgrcv ()
-.\"O returns the number of bytes actually copied into the
-.\"O .I mtext
-.\"O array.
-¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¤É¤Á¤é¤Î´Ø¿ô¤â \-1 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤ò
-.I errno
-¤Ëɽ¼¨¤¹¤ë¡£À®¸ù¤·¤¿¾ì¹ç¡¢
-.BR msgsnd ()
-¤Ï 0 ¤òÊÖ¤·¡¢
-.BR msgrcv ()
-¤Ï
-.I mtext
-ÇÛÎó¤Ë¼ÂºÝ¤Ë¥³¥Ô¡¼¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£
-.\"O .SH ERRORS
-.SH ¥¨¥é¡¼
-.\"O When
-.\"O .BR msgsnd ()
-.\"O fails,
-.\"O .I errno
-.\"O will be set to one among the following values:
-.BR msgsnd ()
-¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢
-.B errno
-¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë:
-.TP
-.B EACCES
-.\"O The calling process does not have write permission on the message queue,
-.\"O and does not have the
-.\"O .B CAP_IPC_OWNER
-.\"O capability.
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ë½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢
-.B CAP_IPC_OWNER
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£
-.TP
-.B EAGAIN
-.\"O The message can't be sent due to the
-.\"O .I msg_qbytes
-.\"O limit for the queue and
-.\"O .B IPC_NOWAIT
-.\"O was specified in
-.\"O .IR msgflg .
-.I msg_qbytes
-¤¬¥­¥å¡¼¤ÎÀ©¸Â¤òĶ¤¨¤Æ¤¤¤¿¤¿¤á¡¢¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¤«¤Ä
-.I msgflg
-¤Ë
-.B IPC_NOWAIT
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£
-.TP
-.B EFAULT
-.\"O The address pointed to by
-.\"O .I msgp
-.\"O isn't accessible.
-.I msgp
-¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£
-.TP
-.B EIDRM
-.\"O The message queue was removed.
-¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£
-.TP
-.B EINTR
-.\"O Sleeping on a full message queue condition, the process caught a signal.
-¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬Í׵ᤷ¤¿¾ò·ï¤òËþ¤¿¤¹¤Þ¤ÇÄä»ß¤·¤Æ¤¤¤ë»þ¤Ë¡¢
-¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£
-.TP
-.B EINVAL
-.\"O Invalid
-.\"O .I msqid
-.\"O value, or nonpositive
-.\"O .I mtype
-.\"O value, or
-.\"O invalid
-.\"O .I msgsz
-.\"O value (less than 0 or greater than the system value
-.\"O .BR MSGMAX ).
-.I msqid
-¤¬ÉÔŬÀÚ¤ÊÃͤǤ¢¤ë¤«¡¢
-.I mtype
-¤¬Àµ¤ÎÃͤǤʤ¤¤«¡¢
-.I msgsz
-¤¬ÉÔŬÀÚ¤ÊÃÍ (0 °Ê²¼¤«¡¢¥·¥¹¥Æ¥à¤Ç·è¤Þ¤ëÃÍ
-.B MSGMAX
-¤è¤ê¤âÂ礭¤¤ÃÍ) ¤Ç¤¢¤ë¡£
-.TP
-.B ENOMEM
-.\"O The system does not have enough memory to make a copy of the
-.\"O message pointed to by
-.\"O .IR msgp .
-.I msgp
-¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Ê¤¤¡£
+\fImsg_rtime\fP には現在の時刻が設定される。
+.SH 返り値
+失敗した場合は、どちらの関数も \-1 を返し、エラーを \fIerrno\fP に表示する。成功した場合、 \fBmsgsnd\fP()  は 0 を返し、
+\fBmsgrcv\fP()  は \fImtext\fP 配列に実際にコピーしたバイト数を返す。
+.SH エラー
+\fBmsgsnd\fP()  が失敗した場合、 \fBerrno\fP に以下の値のいずれかが設定される:
+.TP 
+\fBEACCES\fP
+呼び出し元プロセスにはメッセージ・キューに対する書き込み許可がなく、 \fBCAP_IPC_OWNER\fP ケーパビリティもない。
+.TP 
+\fBEAGAIN\fP
+\fImsg_qbytes\fP がキューの制限を超えていたため、メッセージを送ることができず、かつ \fImsgflg\fP に \fBIPC_NOWAIT\fP
+が指定されていた。
+.TP 
+\fBEFAULT\fP
+\fImsgp\fP が指しているアドレスがアクセス可能でない。
+.TP 
+\fBEIDRM\fP
+メッセージ・キューが削除された。
+.TP 
+\fBEINTR\fP
+メッセージ・キューが要求した条件を満たすまで停止している時に、 プロセスがシグナルを捕獲した。
+.TP 
+\fBEINVAL\fP
+\fImsqid\fP が不適切な値であるか、 \fImtype\fP が正の値でないか、 \fImsgsz\fP が不適切な値 (0 以下か、システムで決まる値
+\fBMSGMAX\fP よりも大きい値) である。
+.TP 
+\fBENOMEM\fP
+\fImsgp\fP が指すメッセージのコピーを作成するのに十分なメモリがシステムに存在しない。
 .PP
-.\"O When
-.\"O .BR msgrcv ()
-.\"O fails,
-.\"O .I errno
-.\"O will be set to one among the following values:
-.BR msgrcv ()
-¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï
-.I errno
-¤Ë°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë:
-.TP
-.B E2BIG
-.\"O The message text length is greater than
-.\"O .I msgsz
-.\"O and
-.\"O .B MSG_NOERROR
-.\"O isn't specified in
-.\"O .IR msgflg .
-¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎŤµ¤¬
-.I msgsz
-¤è¤ê¤âÂ礭¤¯¡¢
-.I msgflg
-¤Ë
-.B MSG_NOERROR
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
-.TP
-.B EACCES
-.\"O The calling process does not have read permission on the message queue,
-.\"O and does not have the
-.\"O .B CAP_IPC_OWNER
-.\"O capability.
-¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤¬¤Ê¤¯¡¢
-.B CAP_IPC_OWNER
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤â¤Ê¤¤¡£
-.TP
-.B EAGAIN
-.\"O No message was available in the queue and
-.\"O .B IPC_NOWAIT
-.\"O was specified in
-.\"O .IR msgflg .
-¥­¥å¡¼¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤¯¡¢
-.I msgflg
-¤Ë
-.B IPC_NOWAIT
-¤¬»ØÄꤵ¤ì¤¿¡£
-.TP
-.B EFAULT
-.\"O The address pointed to by
-.\"O .I msgp
-.\"O isn't accessible.
-.I msgp
-¤¬»Ø¤·¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£
-.TP
-.B EIDRM
-.\"O While the process was sleeping to receive a message,
-.\"O the message queue was removed.
-¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë¤¿¤á¤Ë¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢
-¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£
-.TP
-.B EINTR
-.\"O While the process was sleeping to receive a message,
-.\"O the process caught a signal; see
-.\"O .BR signal (7).
-¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¤ë¤¿¤á¤Ë¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë´Ö¤Ë¡¢
-¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤òÊá³Í¤·¤¿¡£
-.BR signal (7)
-»²¾È¡£
-.TP
-.B EINVAL
-.\"O .I msgqid
-.\"O was invalid, or
-.\"O .I msgsz
-.\"O was less than 0.
-.I msgqid
-¤¬ÉÔÀµ¤«¡¢
-.I msgsz
-¤¬ 0 ¤è¤ê¾®¤µ¤¤¡£
-.TP
-.B ENOMSG
-.\"O .B IPC_NOWAIT
-.\"O was specified in
-.\"O .I msgflg
-.\"O and no message of the requested type existed on the message queue.
-.I msgflg
-¤Ë
-.B IPC_NOWAIT
-¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢
-¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤ËÍ׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¡£
-.\"O .SH "CONFORMING TO"
-.SH ½àµò
-SVr4, POSIX.1-2001.
-.\"O .SH NOTES
-.SH Ãí°Õ
-.\"O The
-.\"O .I msgp
-.\"O argument is declared as \fIstruct msgbuf *\fP with
-.\"O libc4, libc5, glibc 2.0, glibc 2.1.
-.\"O It is declared as \fIvoid *\fP
-.\"O with glibc 2.2 and later, as required by SUSv2 and SUSv3.
-.I msgp
-°ú¤­¿ô¤Ï¡¢ libc4, libc5, glibc 2.0, glibc 2.1 ¤Ç¤Ï
-\fIstruct msgbuf *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£glibc 2.2 °Ê¹ß¤Ç¤Ï¡¢
-SUSv2 ¤È SUSv3 ¤ÎÍ×µáÄ̤ꡢ\fIvoid *\fP ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£
+\fBmsgrcv\fP()  が失敗した場合には \fIerrno\fP に以下の値のいずれかが設定される:
+.TP 
+\fBE2BIG\fP
+メッセージのテキストの長さが \fImsgsz\fP よりも大きく、 \fImsgflg\fP に \fBMSG_NOERROR\fP が設定されていなかった。
+.TP 
+\fBEACCES\fP
+呼び出し元プロセスにはメッセージ・キューに対する読み込み許可がなく、 \fBCAP_IPC_OWNER\fP ケーパビリティもない。
+.TP 
+\fBEAGAIN\fP
+キューにはメッセージがなく、 \fImsgflg\fP に \fBIPC_NOWAIT\fP が指定された。
+.TP 
+\fBEFAULT\fP
+\fImsgp\fP が指しているアドレスがアクセス可能でない。
+.TP 
+\fBEIDRM\fP
+メッセージを受信するためにプロセスが停止している間に、 メッセージ・キューが削除された。
+.TP 
+\fBEINTR\fP
+メッセージを受けるためにプロセスが停止している間に、 プロセスがシグナルを捕獲した。 \fBsignal\fP(7)  参照。
+.TP 
+\fBEINVAL\fP
+\fImsgqid\fP が不正か、 \fImsgsz\fP が 0 より小さい。
+.TP 
+\fBENOMSG\fP
+\fImsgflg\fP に \fBIPC_NOWAIT\fP が設定されており、 メッセージ・キューに要求された型のメッセージが存在しなかった。
+.SH 準拠
+SVr4, POSIX.1\-2001.
+.SH 注意
+.\" Like Linux, the FreeBSD man pages still document
+.\" the inclusion of these header files.
+Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
+のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
 
-.\"O The following limits on message queue resources affect the
-.\"O .BR msgsnd ()
-.\"O call:
-°Ê²¼¤Ï
-.B msgsnd
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥·¥¹¥Æ¥àÀ©¸Â¤Ç¤¢¤ë:
-.TP
-.B MSGMAX
-.\"O Maximum size for a message text: 8192 bytes
-.\"O (on Linux, this limit can be read and modified via
-.\"O .IR /proc/sys/kernel/msgmax ).
-¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥­¥¹¥È¤ÎºÇÂ祵¥¤¥º: 8192 ¥Ð¥¤¥È
-(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃͤÏ
-.I /proc/sys/kernel/msgmax
-·Ðͳ¤ÇÆɤ߽Ф·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£
-.TP
-.B MSGMNB
-.\"O Default maximum size in bytes of a message queue: 16384 bytes
-.\"O (on Linux, this limit can be read and modified via
-.\"O .IR /proc/sys/kernel/msgmnb ).
-.\"O The superuser can increase the size of a message queue beyond
-.\"O .B MSGMNB
-.\"O by a
-.\"O .BR msgctl (2)
-.\"O system call.
-¥Ð¥¤¥Èñ°Ì¤Ç¤Î¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥Ç¥Õ¥©¥ë¥È¤ÎºÇÂ祵¥¤¥º : 16384 ¥Ð¥¤¥È¡£
-(Linux ¤Ç¤Ï¡¢¤³¤ÎÀ©¸ÂÃͤÏ
-.I /proc/sys/kernel/msgmnb
-·Ðͳ¤ÇÆɤ߽Ф·¤¿¤êÊѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£
-¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡¼¤Ï
-.BR msgctl (2)
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼¤Î¥µ¥¤¥º¤ò
-.B MSGMNB
-¤è¤ê¤âÂ礭¤¤ÃͤËÁý¤ä¤¹¤³¤È¤¬¤Ç¤­¤ë¡£
+\fImsgp\fP 引き数は、 libc4, libc5, glibc 2.0, glibc 2.1 では \fIstruct msgbuf *\fP
+と宣言されている。glibc 2.2 以降では、 SUSv2 と SUSv3 の要求通り、\fIvoid *\fP と宣言されている。
+
+以下は \fBmsgsnd\fP システムコールに影響するシステム制限である:
+.TP 
+\fBMSGMAX\fP
+メッセージのテキストの最大サイズ: 8192 バイト (Linux では、この制限値は \fI/proc/sys/kernel/msgmax\fP
+経由で読み出したり変更したりできる)。
+.TP 
+\fBMSGMNB\fP
+バイト単位でのメッセージ・キューのデフォルトの最大サイズ : 16384 バイト。 (Linux では、この制限値は
+\fI/proc/sys/kernel/msgmnb\fP 経由で読み出したり変更したりできる)。 スーパーユーザーは \fBmsgctl\fP(2)
+システムコールでメッセージ・キューのサイズを \fBMSGMNB\fP よりも大きい値に増やすことができる。
 .PP
-.\"O The implementation has no intrinsic limits for the system wide maximum
-.\"O number of message headers
-.\"O .RB ( MSGTQL )
-.\"O and for the system wide maximum size in bytes of the message pool
-.\"O .RB ( MSGPOOL ).
-¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥Ø¥Ã¥À¡¼¤ÎºÇÂç¿ô
-.RB ( MSGTQL )
-¤È¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥×¡¼¥ë¤ÎºÇÂç¥Ð¥¤¥È¿ô
-.RB ( MSGPOOL )
-¤Ë´Ø¤·¤Æ¼ÂÁõ°Í¸¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£
-.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
-.BR msgctl (2),
-.BR msgget (2),
-.BR capabilities (7),
-.BR mq_overview (7),
-.BR svipc (7)
+現在の実装では、システム全体のメッセージ・ヘッダーの最大数 (\fBMSGTQL\fP)  と、システム全体のメッセージ・プールの最大バイト数
+(\fBMSGPOOL\fP)  に関して実装依存の制限はない。
+.SH 関連項目
+\fBmsgctl\fP(2), \fBmsgget\fP(2), \fBcapabilities\fP(7), \fBmq_overview\fP(7),
+\fBsvipc\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。