OSDN Git Service

Update releases for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man2 / msgop.2
index 8236597..d313d58 100644 (file)
@@ -68,8 +68,8 @@ msgrcv, msgsnd \- System V メッセージキュー操作
 \fB               int \fP\fImsgflg\fP\fB);\fP
 .fi
 .SH 説明
\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« \fBmsgsnd\fP()  ã\81¨ \fBmsgrcv\fP()  ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\80\81 System\ V ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81¸ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®é\80\81ä¿¡ã\81¨ã\80\81
\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®å\8f\97ä¿¡ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83­ã\82»ã\82¹ã\81¯ã\80\81 ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92é\80\81ä¿¡ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81«å¯¾ã\81\99ã\82\8bæ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\82\92ã\80\81
+システムコール \fBmsgsnd\fP()  と \fBmsgrcv\fP()  はそれぞれ、 System\ V メッセージキューへのメッセージの送信と、
+メッセージの受信に使用される。呼び出し元プロセスは、 メッセージを送信するためにはメッセージキューに対する書き込み許可を、
 メッセージを受信するためには読み出し許可を持っていなければならない。
 .PP
 呼び出し元プロセスは以下に示す構造体を用意し、この構造体への ポインタを \fImsgp\fP 引き数として渡す。
@@ -88,28 +88,21 @@ struct msgbuf {
 この値は、メッセージを受信するプロセスでメッセージを選択するために 使用される (下記の \fBmsgrcv\fP()  の説明を参照のこと)。
 .SS msgsnd()
 \fBmsgsnd\fP()  システムコールは \fImsgp\fP 引き数で指定されたメッセージのコピーを \fImsqid\fP
\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fè­\98å\88¥å­\90ã\82\92æ\8c\81ã\81¤ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81¸è¿½å\8a ã\81\99ã\82\8bã\80\82
+で指定された識別子を持つメッセージキューへ追加する。
 .PP
-If sufficient space is available in the queue, \fBmsgsnd\fP()  succeeds
-immediately.  The queue capacity is governed by the \fImsg_qbytes\fP field in
-the associated data structure for the message queue.  During queue creation
-this field is initialized to \fBMSGMNB\fP bytes, but this limit can be modified
-using \fBmsgctl\fP(2).  A message queue is considered to be full if either of
-the following conditions is true:
+キューに十分な空き容量がある場合、 \fBmsgsnd\fP()  は直ちに成功する。 キューの容量は、メッセージキューのデータ構造体の
+\fImsg_qbytes\fP フィールドで制御される。 キュー作成時にこのフィールドは \fBMSGMNB\fP に初期化されるが、この制限は
+\fBmsgctl\fP(2)  を使って変更できる。 次のいずれかの条件が成立する場合に、メッセージキューは一杯と判断される。
 .IP * 2
-Adding a new message to the queue would cause the total number of bytes in
-the queue to exceed the queue's maximum size (the \fImsg_qbytes\fP field).
+新しいメッセージをそのキューに追加すると、 そのキューの全バイト数がキューの最大サイズ (\fImsg_qbytes\fP フィールド)
+を超過してしまう場合。
 .IP *
-Adding another message to the queue would cause the total number of messages
-in the queue to exceed the queue's maximum size (the \fImsg_qbytes\fP field).
-This check is necessary to prevent an unlimited number of zero\-length
-messages being placed on the queue.  Although such messages contain no data,
-they nevertheless consume (locked) kernel memory.
+そのキューにもう一つメッセージを追加すると、 そのキューが全メッセージ数がキューの最大サイズ (\fImsg_qbytes\fP フィールド)
+を超過してしまう場合。 このチェックは、無限個の長さ 0 のメッセージをそのキューに追加するのを防ぐために必要である。 長さ 0
+のメッセージはデータを含まないが、 (ロックされた) カーネルメモリを消費するからである。
 .PP
-If insufficient space is available in the queue, then the default behavior
-of \fBmsgsnd\fP()  is to block until space becomes available.  If \fBIPC_NOWAIT\fP
-is specified in \fImsgflg\fP, then the call instead fails with the error
-\fBEAGAIN\fP.
+そのキューに十分な領域がない場合、 デフォルトの動作では、 必要な領域ができるまで \fBmsgsnd\fP() は停止 (block) する。
+\fImsgflg\fP に \fBIPC_NOWAIT\fP が指定された場合、 \fBmsgsnd\fP() はエラー \fBEAGAIN\fP で失敗する。
 
 停止している \fBmsgsnd\fP()  は以下の場合にも失敗する。
 .IP * 2
@@ -119,7 +112,7 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 は、たとえシグナルハンドラの設定時に \fBSA_RESTART\fP を指定していたとしても、シグナルハンドラによって割り込まれた後で
 自動的に再スタートすることは決してない。)
 .PP
-正常ã\81«çµ\82äº\86ã\81\97ã\81\9få ´å\90\88ã\80\81ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81®ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81« æ\9b´æ\96°ã\81\95ã\82\8cã\82\8b:
+正常に終了した場合、メッセージキューのデータ構造体は以下のように 更新される:
 .IP
 \fImsg_lspid\fP には呼び出し元プロセスのプロセス ID が設定される。
 .IP
@@ -175,13 +168,13 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 .IP * 2
 要求している型のメッセージがキューへ入れられた。
 .IP *
\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81\8bã\82\89å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\80\82 ã\81\93ã\81®å ´å\90\88ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯å¤±æ\95\97ã\81\97ã\80\81 \fIerrno\fP ã\81« \fBEIDRM\fP ã\81\8c設å®\9aã\81\95ã\82\8cã\82\8bã\80\82
+メッセージキューがシステムから削除された。 この場合、システムコールは失敗し、 \fIerrno\fP に \fBEIDRM\fP が設定される。
 .IP *
 呼び出し元プロセスがシグナルを捕獲した。 この場合、システムコールは失敗し、 \fIerrno\fP に \fBEINTR\fP が設定される。
 (\fBmsgrcv\fP()  は、たとえシグナルハンドラの設定時に \fBSA_RESTART\fP
 を指定していたとしても、シグナルハンドラによって割り込まれた後で 自動的に再スタートすることは決してない。)
 .PP
-正常ã\81«çµ\82äº\86ã\81\97ã\81\9få ´å\90\88ã\80\81ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81®ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81« æ\9b´æ\96°ã\81\95ã\82\8cã\82\8b:
+正常に終了した場合、メッセージキューのデータ構造体は以下のように 更新される:
 .IP
 \fImsg_lrpid\fP には呼び出し元プロセスのプロセス ID が設定される。
 .IP
@@ -195,7 +188,7 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 \fBmsgsnd\fP()  が失敗した場合、 \fBerrno\fP に以下の値のいずれかが設定される:
 .TP 
 \fBEACCES\fP
\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83­ã\82»ã\82¹ã\81«ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81«å¯¾ã\81\99ã\82\8bæ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\81\8cã\81ªã\81\8fã\80\81 \fBCAP_IPC_OWNER\fP ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82\82ã\81ªã\81\84ã\80\82
+呼び出し元プロセスにはメッセージキューに対する書き込み許可がなく、 \fBCAP_IPC_OWNER\fP ケーパビリティもない。
 .TP 
 \fBEAGAIN\fP
 \fImsg_qbytes\fP がキューの制限を超えていたため、メッセージを送ることができず、かつ \fImsgflg\fP に \fBIPC_NOWAIT\fP
@@ -205,10 +198,10 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 \fImsgp\fP が指しているアドレスがアクセス可能でない。
 .TP 
 \fBEIDRM\fP
\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81\8cå\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\80\82
+メッセージキューが削除された。
 .TP 
 \fBEINTR\fP
\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81\8cè¦\81æ±\82ã\81\97ã\81\9fæ\9d¡ä»¶ã\82\92æº\80ã\81\9fã\81\99ã\81¾ã\81§å\81\9cæ­¢ã\81\97ã\81¦ã\81\84ã\82\8bæ\99\82ã\81«ã\80\81 ã\83\97ã\83­ã\82»ã\82¹ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\82\92æ\8d\95ç\8d²ã\81\97ã\81\9fã\80\82
+メッセージキューが要求した条件を満たすまで停止している時に、 プロセスがシグナルを捕獲した。
 .TP 
 \fBEINVAL\fP
 \fImsqid\fP が不適切な値であるか、 \fImtype\fP が正の値でないか、 \fImsgsz\fP が不適切な値 (0 以下か、システムで決まる値
@@ -223,7 +216,7 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 メッセージのテキストの長さが \fImsgsz\fP よりも大きく、 \fImsgflg\fP に \fBMSG_NOERROR\fP が設定されていなかった。
 .TP 
 \fBEACCES\fP
\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83­ã\82»ã\82¹ã\81«ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81«å¯¾ã\81\99ã\82\8b読ã\81¿è¾¼ã\81¿è¨±å\8f¯ã\81\8cã\81ªã\81\8fã\80\81 \fBCAP_IPC_OWNER\fP ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82\82ã\81ªã\81\84ã\80\82
+呼び出し元プロセスにはメッセージキューに対する読み込み許可がなく、 \fBCAP_IPC_OWNER\fP ケーパビリティもない。
 .TP 
 \fBEAGAIN\fP
 キューにはメッセージがなく、 \fImsgflg\fP に \fBIPC_NOWAIT\fP が指定された。
@@ -232,7 +225,7 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 \fImsgp\fP が指しているアドレスがアクセス可能でない。
 .TP 
 \fBEIDRM\fP
\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\83\97ã\83­ã\82»ã\82¹ã\81\8cå\81\9cæ­¢ã\81\97ã\81¦ã\81\84ã\82\8bé\96\93ã\81«ã\80\81 ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81\8cå\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\80\82
+メッセージを受信するためにプロセスが停止している間に、 メッセージキューが削除された。
 .TP 
 \fBEINTR\fP
 メッセージを受けるためにプロセスが停止している間に、 プロセスがシグナルを捕獲した。 \fBsignal\fP(7)  参照。
@@ -247,7 +240,7 @@ is specified in \fImsgflg\fP, then the call instead fails with the error
 \fImsgflg\fP に \fBMSG_COPY\fP と \fBMSG_EXCEPT\fP の両方が指定された。
 .TP 
 \fBENOMSG\fP
-\fImsgflg\fP ã\81« \fBIPC_NOWAIT\fP ã\81\8c設å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82­ã\83¥ã\83¼ã\81«è¦\81æ±\82ã\81\95ã\82\8cã\81\9få\9e\8bã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cå­\98å\9c¨ã\81\97ã\81ªã\81\8bã\81£ã\81\9fã\80\82
+\fImsgflg\fP に \fBIPC_NOWAIT\fP が設定されており、 メッセージキューに要求された型のメッセージが存在しなかった。
 .TP 
 \fBENOMSG\fP
 \fBIPC_NOWAIT\fP と \fBMSG_COPY\fP が \fImsgflg\fP に指定されたが、 キューには \fImsgtyp\fP
@@ -279,15 +272,13 @@ Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI
 経由で読み出したり変更したりできる)。
 .TP 
 \fBMSGMNB\fP
-Default maximum size in bytes of a message queue: 16384 bytes (on Linux,
-this limit can be read and modified via \fI/proc/sys/kernel/msgmnb\fP).  A
-privileged process (Linux: a process with the \fBCAP_SYS_RESOURCE\fP
-capability)  can increase the size of a message queue beyond \fBMSGMNB\fP by a
-\fBmsgctl\fP(2)  system call.
+バイト単位でのメッセージキューのデフォルトの最大サイズ : 16384 バイト。 (Linux では、この制限値は
+\fI/proc/sys/kernel/msgmnb\fP 経由で読み出したり変更したりできる)。 特権プロセス (Linux ではケーパビリティ
+\fBCAP_SYS_RESOURCE\fP を持ったプロセス) は \fBmsgctl\fP(2)  システムコールでメッセージキューのサイズを
+\fBMSGMNB\fP よりも大きい値に増やすことができる。
 .PP
-The implementation has no intrinsic system\-wide limits on the number of
-message headers (\fBMSGTQL\fP)  and the number of bytes in the message pool
-(\fBMSGPOOL\fP).
+現在の実装では、システム全体のメッセージ・ヘッダーの上限数 (\fBMSGTQL\fP)  と、システム全体のメッセージ・プールの最大バイト数
+(\fBMSGPOOL\fP)  に関して実装依存の制限はない。
 .SH バグ
 .\" FIXME http://marc.info/?l=linux-kernel&m=139048542803605&w=2
 .\" commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c