1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2014-04-17 13:14+0900\n"
10 "PO-Revision-Date: 2014-04-17 03:40+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
19 #: build/C/man3/mq_close.3:26
25 #: build/C/man3/mq_close.3:26 build/C/man3/mq_getattr.3:26
26 #: build/C/man3/mq_unlink.3:26
32 #: build/C/man3/mq_close.3:26 build/C/man3/mq_getattr.3:26
33 #: build/C/man2/mq_getsetattr.2:26 build/C/man3/mq_notify.3:26
34 #: build/C/man3/mq_open.3:26 build/C/man7/mq_overview.7:26
35 #: build/C/man3/mq_receive.3:26 build/C/man3/mq_send.3:26
36 #: build/C/man3/mq_unlink.3:26 build/C/man2/msgctl.2:37
37 #: build/C/man2/msgget.2:35 build/C/man2/msgop.2:40
43 #: build/C/man3/mq_close.3:26 build/C/man3/mq_getattr.3:26
44 #: build/C/man2/mq_getsetattr.2:26 build/C/man3/mq_notify.3:26
45 #: build/C/man3/mq_open.3:26 build/C/man7/mq_overview.7:26
46 #: build/C/man3/mq_receive.3:26 build/C/man3/mq_send.3:26
47 #: build/C/man3/mq_unlink.3:26 build/C/man2/msgctl.2:37
48 #: build/C/man2/msgget.2:35 build/C/man2/msgop.2:40
50 msgid "Linux Programmer's Manual"
51 msgstr "Linux Programmer's Manual"
54 #: build/C/man3/mq_close.3:27 build/C/man3/mq_getattr.3:27
55 #: build/C/man2/mq_getsetattr.2:27 build/C/man3/mq_notify.3:27
56 #: build/C/man3/mq_open.3:27 build/C/man7/mq_overview.7:27
57 #: build/C/man3/mq_receive.3:27 build/C/man3/mq_send.3:27
58 #: build/C/man3/mq_unlink.3:27 build/C/man2/msgctl.2:38
59 #: build/C/man2/msgget.2:36 build/C/man2/msgop.2:41
65 #: build/C/man3/mq_close.3:29
66 msgid "mq_close - close a message queue descriptor"
67 msgstr "mq_close - メッセージキュー記述子をクローズする"
70 #: build/C/man3/mq_close.3:29 build/C/man3/mq_getattr.3:29
71 #: build/C/man2/mq_getsetattr.2:29 build/C/man3/mq_notify.3:29
72 #: build/C/man3/mq_open.3:29 build/C/man3/mq_receive.3:29
73 #: build/C/man3/mq_send.3:29 build/C/man3/mq_unlink.3:29
74 #: build/C/man2/msgctl.2:40 build/C/man2/msgget.2:38 build/C/man2/msgop.2:43
80 #: build/C/man3/mq_close.3:32 build/C/man3/mq_getattr.3:32
81 #: build/C/man3/mq_notify.3:32 build/C/man3/mq_receive.3:32
82 #: build/C/man3/mq_send.3:32 build/C/man3/mq_unlink.3:32
84 msgid "B<#include E<lt>mqueue.hE<gt>>\n"
85 msgstr "B<#include E<lt>mqueue.hE<gt>>\n"
88 #: build/C/man3/mq_close.3:34
90 msgid "B<int mq_close(mqd_t >I<mqdes>B<);>\n"
91 msgstr "B<int mq_close(mqd_t >I<mqdes>B<);>\n"
94 #: build/C/man3/mq_close.3:37 build/C/man3/mq_getattr.3:40
95 #: build/C/man3/mq_notify.3:37 build/C/man3/mq_open.3:41
96 #: build/C/man3/mq_receive.3:45 build/C/man3/mq_send.3:45
97 #: build/C/man3/mq_unlink.3:37
98 msgid "Link with I<-lrt>."
99 msgstr "I<-lrt> でリンクする。"
102 #: build/C/man3/mq_close.3:37 build/C/man3/mq_getattr.3:40
103 #: build/C/man2/mq_getsetattr.2:40 build/C/man3/mq_notify.3:37
104 #: build/C/man3/mq_open.3:41 build/C/man7/mq_overview.7:29
105 #: build/C/man3/mq_receive.3:57 build/C/man3/mq_send.3:57
106 #: build/C/man3/mq_unlink.3:37 build/C/man2/msgctl.2:48
107 #: build/C/man2/msgget.2:46 build/C/man2/msgop.2:56
113 #: build/C/man3/mq_close.3:41
114 msgid "B<mq_close>() closes the message queue descriptor I<mqdes>."
116 "B<mq_close>() はメッセージキュー記述子 (message queue descriptor) I<mqdes> "
120 #: build/C/man3/mq_close.3:47
122 "If the calling process has attached a notification request to this message "
123 "queue via I<mqdes>, then this request is removed, and another process can "
124 "now attach a notification request."
126 "呼び出し元のプロセスが I<mqdes> 経由でこのメッセージキューに通知要求 "
127 "(notification request) を設定している場合、通知要求は削除され、他のプロセス"
128 "がそのキューに 対して通知要求を設定できるようになる。"
131 #: build/C/man3/mq_close.3:47 build/C/man3/mq_getattr.3:118
132 #: build/C/man3/mq_notify.3:134 build/C/man3/mq_open.3:123
133 #: build/C/man3/mq_receive.3:113 build/C/man3/mq_send.3:119
134 #: build/C/man3/mq_unlink.3:44 build/C/man2/msgctl.2:229
135 #: build/C/man2/msgget.2:137 build/C/man2/msgop.2:321
141 #: build/C/man3/mq_close.3:53
143 "On success B<mq_close>() returns 0; on error, -1 is returned, with I<errno> "
144 "set to indicate the error."
146 "成功すると、 B<mq_close>() は 0 を返す。エラーの場合、-1 を返し、 I<errno> "
150 #: build/C/man3/mq_close.3:53 build/C/man3/mq_getattr.3:126
151 #: build/C/man3/mq_notify.3:140 build/C/man3/mq_open.3:135
152 #: build/C/man3/mq_receive.3:122 build/C/man3/mq_send.3:127
153 #: build/C/man3/mq_unlink.3:50 build/C/man2/msgctl.2:254
154 #: build/C/man2/msgget.2:143 build/C/man2/msgop.2:334
160 #: build/C/man3/mq_close.3:54 build/C/man3/mq_getattr.3:127
161 #: build/C/man3/mq_notify.3:141 build/C/man3/mq_receive.3:129
162 #: build/C/man3/mq_send.3:134
168 #: build/C/man3/mq_close.3:59 build/C/man3/mq_getattr.3:132
169 #: build/C/man3/mq_notify.3:146
170 msgid "The descriptor specified in I<mqdes> is invalid."
171 msgstr "I<mqdes> に指定されたディスクリプタが不正である。"
174 #: build/C/man3/mq_close.3:59 build/C/man3/mq_getattr.3:137
175 #: build/C/man2/mq_getsetattr.2:50 build/C/man3/mq_notify.3:174
176 #: build/C/man3/mq_open.3:224 build/C/man7/mq_overview.7:263
177 #: build/C/man3/mq_receive.3:156 build/C/man3/mq_send.3:161
178 #: build/C/man3/mq_unlink.3:62 build/C/man2/msgctl.2:325
179 #: build/C/man2/msgget.2:183 build/C/man2/msgop.2:464
181 msgid "CONFORMING TO"
185 #: build/C/man3/mq_close.3:61 build/C/man3/mq_getattr.3:139
186 #: build/C/man3/mq_notify.3:176 build/C/man3/mq_open.3:226
187 #: build/C/man7/mq_overview.7:265 build/C/man3/mq_receive.3:158
188 #: build/C/man3/mq_send.3:163 build/C/man3/mq_unlink.3:64
189 msgid "POSIX.1-2001."
190 msgstr "POSIX.1-2001."
193 #: build/C/man3/mq_close.3:61 build/C/man3/mq_getattr.3:139
194 #: build/C/man2/mq_getsetattr.2:52 build/C/man7/mq_overview.7:265
195 #: build/C/man3/mq_receive.3:158 build/C/man3/mq_send.3:163
196 #: build/C/man2/msgctl.2:328 build/C/man2/msgget.2:185
197 #: build/C/man2/msgop.2:476
203 #: build/C/man3/mq_close.3:65
205 "All open message queues are automatically closed on process termination, or "
208 "プロセス終了時、もしくは B<execve>(2) 実行時に、全てのオープンされたメッセー"
212 #: build/C/man3/mq_close.3:65 build/C/man3/mq_getattr.3:147
213 #: build/C/man2/mq_getsetattr.2:56 build/C/man3/mq_notify.3:243
214 #: build/C/man3/mq_open.3:230 build/C/man7/mq_overview.7:281
215 #: build/C/man3/mq_receive.3:164 build/C/man3/mq_send.3:169
216 #: build/C/man3/mq_unlink.3:64 build/C/man2/msgctl.2:367
217 #: build/C/man2/msgget.2:230 build/C/man2/msgop.2:557
223 #: build/C/man3/mq_close.3:73
225 "B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
226 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
228 "B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
229 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
232 #: build/C/man3/mq_close.3:73 build/C/man3/mq_getattr.3:155
233 #: build/C/man2/mq_getsetattr.2:59 build/C/man3/mq_notify.3:252
234 #: build/C/man3/mq_open.3:238 build/C/man7/mq_overview.7:294
235 #: build/C/man3/mq_receive.3:173 build/C/man3/mq_send.3:178
236 #: build/C/man3/mq_unlink.3:72 build/C/man2/msgctl.2:374
237 #: build/C/man2/msgget.2:238 build/C/man2/msgop.2:563
243 #: build/C/man3/mq_close.3:80 build/C/man3/mq_getattr.3:162
244 #: build/C/man2/mq_getsetattr.2:66 build/C/man3/mq_notify.3:259
245 #: build/C/man3/mq_open.3:245 build/C/man7/mq_overview.7:301
246 #: build/C/man3/mq_receive.3:180 build/C/man3/mq_send.3:185
247 #: build/C/man3/mq_unlink.3:79 build/C/man2/msgctl.2:381
248 #: build/C/man2/msgget.2:245 build/C/man2/msgop.2:570
251 #| "This page is part of release 3.63 of the Linux I<man-pages> project. A "
252 #| "description of the project, and information about reporting bugs, can be "
253 #| "found at \\%http://www.kernel.org/doc/man-pages/."
255 "This page is part of release 3.64 of the Linux I<man-pages> project. A "
256 "description of the project, and information about reporting bugs, can be "
257 "found at \\%http://www.kernel.org/doc/man-pages/."
259 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.63 の一部\n"
260 "である。プロジェクトの説明とバグ報告に関する情報は\n"
261 "http://www.kernel.org/doc/man-pages/ に書かれている。"
264 #: build/C/man3/mq_getattr.3:26
270 #: build/C/man3/mq_getattr.3:29
271 msgid "mq_getattr, mq_setattr - get/set message queue attributes"
272 msgstr "mq_getattr, mq_setattr - メッセージキューの属性を設定/取得する"
275 #: build/C/man3/mq_getattr.3:34
277 msgid "B<int mq_getattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<attr>B<);>\n"
278 msgstr "B<int mq_getattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<attr>B<);>\n"
281 #: build/C/man3/mq_getattr.3:37
284 "B<int mq_setattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<newattr>B<,>\n"
285 "B< struct mq_attr *>I<oldattr>B<);>\n"
287 "B<int mq_setattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<newattr>B<,>\n"
288 "B< struct mq_attr *>I<oldattr>B<);>\n"
291 #: build/C/man3/mq_getattr.3:47
293 "B<mq_getattr>() and B<mq_setattr>() respectively retrieve and modify "
294 "attributes of the message queue referred to by the descriptor I<mqdes>."
296 "B<mq_getattr>() と B<mq_setattr>() は、記述子 I<mqdes> で参照されるメッセー"
297 "ジキューの属性の取得と変更をそれぞれ行う。"
300 #: build/C/man3/mq_getattr.3:54
302 "B<mq_getattr>() returns an I<mq_attr> structure in the buffer pointed by "
303 "I<attr>. This structure is defined as:"
305 "B<mq_getattr>() は、 I<attr> が指すバッファに I<mq_attr> 構造体を格納して返"
306 "す。この構造体は以下のように定義されている:"
309 #: build/C/man3/mq_getattr.3:63
313 " long mq_flags; /* Flags: 0 or O_NONBLOCK */\n"
314 " long mq_maxmsg; /* Max. # of messages on queue */\n"
315 " long mq_msgsize; /* Max. message size (bytes) */\n"
316 " long mq_curmsgs; /* # of messages currently in queue */\n"
320 " long mq_flags; /* フラグ: 0 か O_NONBLOCK */\n"
321 " long mq_maxmsg; /* キューの最大メッセージ数 */\n"
322 " long mq_msgsize; /* 最大メッセージサイズ (バイト単位) */\n"
323 " long mq_curmsgs; /* キューに現在入っているメッセージ数 */\n"
327 #: build/C/man3/mq_getattr.3:73
329 "The I<mq_flags> field contains flags associated with the open message queue "
330 "description. This field is initialized when the queue is created by "
331 "B<mq_open>(3). The only flag that can appear in this field is B<O_NONBLOCK>."
333 "I<mq_flags> フィールドには、オープンメッセージキュー記述 (open message queue "
334 "description) に関連付けられているフラグが格納される。 このフィールドは "
335 "B<mq_open>(3) でキューが作成される際に初期化される。 このフィールドに現れる"
336 "フラグは B<O_NONBLOCK> だけである。"
339 #: build/C/man3/mq_getattr.3:94
341 "The I<mq_maxmsg> and I<mq_msgsize> fields are set when the message queue is "
342 "created by B<mq_open>(3). The I<mq_maxmsg> field is an upper limit on the "
343 "number of messages that may be placed on the queue using B<mq_send>(3). The "
344 "I<mq_msgsize> field is an upper limit on the size of messages that may be "
345 "placed on the queue. Both of these fields must have a value greater than "
346 "zero. Two I</proc> files that place ceilings on the values for these fields "
347 "are described in B<mq_open>(3)."
349 "I<mq_maxmsg> と I<mq_msgsize> フィールドは B<mq_open>(3) でメッセージキュー"
350 "が作成される際にセットされる。 I<mq_maxmsg> フィールドは、 B<mq_send>(3) を"
351 "使ってキューに入れることができるメッセージ数の上限である。 I<mq_msgsize> "
352 "フィールドは、キューに入れることができるメッセージの 上限サイズである。 これ"
353 "らのフィールドはどちらも 0 より大きな値でなければならない。 これらのフィール"
354 "ドに設定できる値の上限は I</proc> ファイルにより決まる。 I</proc> ファイルの"
355 "詳細は B<mq_open>(3) に説明されている。"
358 #: build/C/man3/mq_getattr.3:98
360 "The I<mq_curmsgs> field returns the number of messages currently held in the "
363 "I<mq_curmsgs> フィールドはキューに現在格納されているメッセージ数を返す。"
366 #: build/C/man3/mq_getattr.3:118
368 "B<mq_setattr>() sets message queue attributes using information supplied in "
369 "the I<mq_attr> structure pointed to by I<newattr>. The only attribute that "
370 "can be modified is the setting of the B<O_NONBLOCK> flag in I<mq_flags>. "
371 "The other fields in I<newattr> are ignored. If the I<oldattr> field is not "
372 "NULL, then the buffer that it points to is used to return an I<mq_attr> "
373 "structure that contains the same information that is returned by "
376 "B<mq_setattr>() は、 I<newattr> が指す I<mq_attr> 構造体で与えられた情報を"
377 "使って、メッセージキューの属性を設定する。 変更することができる属性は、 "
378 "I<mq_flags> の B<O_NONBLOCK> フラグの設定だけである。 I<newattr> の他のフィー"
379 "ルドは無視される。 I<oldattr> フィールドが NULL 以外の場合、 B<mq_getattr>"
380 "() が返すのと同じ情報を格納した I<mq_attr> 構造体を I<oldattr> が指すバッ"
384 #: build/C/man3/mq_getattr.3:126
386 "On success B<mq_getattr>() and B<mq_setattr>() return 0; on error, -1 is "
387 "returned, with I<errno> set to indicate the error."
389 "成功すると、 I<mq_getattr ()> と I<mq_setattr ()> は 0 を返す。エラーの場"
390 "合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
393 #: build/C/man3/mq_getattr.3:132 build/C/man3/mq_notify.3:150
394 #: build/C/man3/mq_open.3:156 build/C/man3/mq_receive.3:138
395 #: build/C/man3/mq_send.3:143 build/C/man2/msgctl.2:285
396 #: build/C/man2/msgop.2:365 build/C/man2/msgop.2:421
402 #: build/C/man3/mq_getattr.3:137
403 msgid "I<newattr-E<gt>mq_flags> contained set bits other than B<O_NONBLOCK>."
405 "I<newattr-E<gt>mq_flags> に B<O_NONBLOCK> 以外のビットがセットされていた。"
408 #: build/C/man3/mq_getattr.3:147
410 "On Linux, B<mq_getattr>() and B<mq_setattr>() are library functions "
411 "layered on top of the B<mq_getsetattr>(2) system call."
413 "Linux では、 B<mq_getattr>() と B<mq_setattr>() はライブラリ関数であり、 "
414 "B<mq_getsetattr>(2) システムコールを用いて実装されている。"
417 #: build/C/man3/mq_getattr.3:155
419 "B<mq_close>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), B<mq_send>"
420 "(3), B<mq_unlink>(3), B<mq_overview>(7)"
422 "B<mq_close>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), B<mq_send>"
423 "(3), B<mq_unlink>(3), B<mq_overview>(7)"
426 #: build/C/man2/mq_getsetattr.2:26
428 msgid "MQ_GETSETATTR"
429 msgstr "MQ_GETSETATTR"
432 #: build/C/man2/mq_getsetattr.2:26
438 #: build/C/man2/mq_getsetattr.2:29
439 msgid "mq_getsetattr - get/set message queue attributes"
440 msgstr "mq_getsetattr - メッセージキューの属性を設定/取得する"
443 #: build/C/man2/mq_getsetattr.2:33
446 "B<#include E<lt>sys/types.hE<gt>>\n"
447 "B<#include E<lt>mqueue.hE<gt>>\n"
449 "B<#include E<lt>sys/types.hE<gt>>\n"
450 "B<#include E<lt>mqueue.hE<gt>>\n"
453 #: build/C/man2/mq_getsetattr.2:36
456 "B<int mq_getsetattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<newattr>B<,>\n"
457 "B< struct mq_attr *>I<oldattr>B<);>\n"
459 "B<int mq_getsetattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<newattr>B<,>\n"
460 "B< struct mq_attr *>I<oldattr>B<);>\n"
463 #: build/C/man2/mq_getsetattr.2:40
464 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
466 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
470 #: build/C/man2/mq_getsetattr.2:42
471 msgid "Do not use this system call."
472 msgstr "このシステムコールを使用しないこと。"
475 #: build/C/man2/mq_getsetattr.2:50
477 "This is the low-level system call used to implement B<mq_getattr>(3) and "
478 "B<mq_setattr>(3). For an explanation of how this system call operates, see "
479 "the description of B<mq_setattr>(3)."
481 "B<mq_getattr>(3) と B<mq_setattr>(3) の実装に使用される低レベルのシステム"
482 "コールである。 このシステムコールがどのように動作するかは B<mq_setattr>(3) "
486 #: build/C/man2/mq_getsetattr.2:52
487 msgid "This interface is nonstandard; avoid its use."
488 msgstr "このインタフェースは非標準である。使用を避けること。"
491 #: build/C/man2/mq_getsetattr.2:56
493 "Glibc does not provide a wrapper for this system call; call it using "
494 "B<syscall>(2). (Actually, never call it unless you are writing a C library!)"
496 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
497 "(2) を使って呼び出すこと。 (実のところ、C ライブラリを書いているのでない限"
498 "り、 決してこのシステムコールを呼び出さないこと!)"
501 #: build/C/man2/mq_getsetattr.2:59
502 msgid "B<mq_getattr>(3), B<mq_overview>(7)"
503 msgstr "B<mq_getattr>(3), B<mq_overview>(7)"
506 #: build/C/man3/mq_notify.3:26
512 #: build/C/man3/mq_notify.3:26
514 #| msgid "2014-01-05"
519 #: build/C/man3/mq_notify.3:29
520 msgid "mq_notify - register for notification when a message is available"
521 msgstr "mq_notify - メッセージ到着時に通知を行うよう登録する"
524 #: build/C/man3/mq_notify.3:34
526 msgid "B<int mq_notify(mqd_t >I<mqdes>B<, const struct sigevent *>I<sevp>B<);>\n"
527 msgstr "B<int mq_notify(mqd_t >I<mqdes>B<, const struct sigevent *>I<notification>B<);>\n"
530 #: build/C/man3/mq_notify.3:43
532 "B<mq_notify>() allows the calling process to register or unregister for "
533 "delivery of an asynchronous notification when a new message arrives on the "
534 "empty message queue referred to by the descriptor I<mqdes>."
536 "B<mq_notify>() を使うと、ディスクリプタ I<mqdes> で参照される空のメッセージ"
537 "キューに新しくメッセージが到着した時に 非同期の通知 (notification) の配送が行"
538 "われるように登録したり、 その解除を行ったりできる。"
541 #: build/C/man3/mq_notify.3:51
543 "The I<sevp> argument is a pointer to a I<sigevent> structure. For the "
544 "definition and general details of this structure, see B<sigevent>(7)."
546 "I<sevp> 引き数は I<sigevent> 構造体へのポインタである。 この構造体の定義と一"
547 "般的な詳細については B<sigevent>(7) を参照。"
550 #: build/C/man3/mq_notify.3:65
552 "If I<sevp> is a non-null pointer, then B<mq_notify>() registers the calling "
553 "process to receive message notification. The I<sigev_notify> field of the "
554 "I<sigevent> structure to which I<sevp> points specifies how notification is "
555 "to be performed. This field has one of the following values:"
557 "I<sevp> が NULL でないポインタであれば、 B<mq_notify>() はメッセージ通知を受"
558 "け取るように呼び出し元のプロセスを登録する。 I<sevp> が指す I<sigevent> 構造"
559 "体の I<sigev_notify> フィールドは、どのような通知を行うのかを指定する。 この"
560 "フィールドは以下の値のいずれかを持つ。"
563 #: build/C/man3/mq_notify.3:65
565 msgid "B<SIGEV_NONE>"
566 msgstr "B<SIGEV_NONE>"
568 #. When is SIGEV_NONE useful?
570 #: build/C/man3/mq_notify.3:70
572 "A \"null\" notification: the calling process is registered as the target for "
573 "notification, but when a message arrives, no notification is sent."
575 "「空の (null)」の通知: 呼び出し元のプロセスを通知の宛先として登録するが、 実"
576 "際にはメッセージが到着した時に通知は送られない。"
579 #: build/C/man3/mq_notify.3:70
581 msgid "B<SIGEV_SIGNAL>"
582 msgstr "B<SIGEV_SIGNAL>"
584 #. I don't know of other implementations that set
585 #. si_pid and si_uid -- MTK
587 #: build/C/man3/mq_notify.3:90
589 "Notify the process by sending the signal specified in I<sigev_signo>. See "
590 "B<sigevent>(7) for general details. The I<si_code> field of the "
591 "I<siginfo_t> structure will be set to B<SI_MESGQ>. In addition, I<si_pid> "
592 "will be set to the PID of the process that sent the message, and I<si_uid> "
593 "will be set to the real user ID of the sending process."
595 "I<sigev_signo> で指定されたシグナルを送って、プロセスに通知する。 一般的な詳"
596 "細については B<sigevent>(7) を参照。 I<siginfo_t> 構造体の I<si_code> フィー"
597 "ルドには B<SI_MESGQ> が設定される。 さらに、 I<si_pid> にはメッセージを送信し"
598 "たプロセスの PID が、 I<si_uid> には送信プロセスの実ユーザ ID が設定される。"
601 #: build/C/man3/mq_notify.3:90
603 msgid "B<SIGEV_THREAD>"
604 msgstr "B<SIGEV_THREAD>"
607 #: build/C/man3/mq_notify.3:98
609 "Upon message delivery, invoke I<sigev_notify_function> as if it were the "
610 "start function of a new thread. See B<sigevent>(7) for details."
612 "メッセージの配送時には、 I<sigev_notify_function> があたかも新しいスレッドの"
613 "開始関数であるかのように起動される。 詳細は B<sigevent>(7) を参照。"
616 #: build/C/man3/mq_notify.3:101
618 "Only one process can be registered to receive notification from a message "
621 "一つのメッセージキューから通知を受信するように登録できるプロセスは 一つだけで"
625 #: build/C/man3/mq_notify.3:108
627 "If I<sevp> is NULL, and the calling process is currently registered to "
628 "receive notifications for this message queue, then the registration is "
629 "removed; another process can then register to receive a message notification "
632 "I<sevp> が NULL で、かつ呼び出し元のプロセスがこのメッセージキューからの 通知"
633 "を受信するに現在登録している場合、登録を削除する。 これ以降、別のプロセスがこ"
634 "のメッセージキューから通知を受信するように 登録できるようになる。"
637 #: build/C/man3/mq_notify.3:115
639 "Message notification occurs only when a new message arrives and the queue "
640 "was previously empty. If the queue was not empty at the time B<mq_notify>"
641 "() was called, then a notification will occur only after the queue is "
642 "emptied and a new message arrives."
644 "メッセージ通知は、それまで空のキューに新しいメッセージが到着した 場合にのみ行"
645 "われる。 B<mq_notify>() が呼び出された時にそのキューが空でない場合、 その"
646 "キューが空になり、その後新しいメッセージが到着した時に 初めて通知が行われるこ"
650 #: build/C/man3/mq_notify.3:123
652 "If another process or thread is waiting to read a message from an empty "
653 "queue using B<mq_receive>(3), then any message notification registration is "
654 "ignored: the message is delivered to the process or thread calling "
655 "B<mq_receive>(3), and the message notification registration remains in "
658 "別のプロセスやスレッドが B<mq_receive>(3) を使って、空のキューからメッセージ"
659 "の読み出しを待っている場合、 メッセージ通知の登録は全て無視される。 メッセー"
660 "ジは B<mq_receive>(3) を呼び出しているプロセスやスレッドに配送され、 メッ"
661 "セージ通知の登録は効力を持ったままとなる。"
664 #: build/C/man3/mq_notify.3:134
666 "Notification occurs once: after a notification is delivered, the "
667 "notification registration is removed, and another process can register for "
668 "message notification. If the notified process wishes to receive the next "
669 "notification, it can use B<mq_notify>() to request a further notification. "
670 "This should be done before emptying all unread messages from the queue. "
671 "(Placing the queue in nonblocking mode is useful for emptying the queue of "
672 "messages without blocking once it is empty.)"
674 "通知は一度だけ行われる。通知が送られた後は、通知要求の登録は削除され、 別のプ"
675 "ロセスがメッセージ通知を受信するように登録できるようになる。 通知を受けたプロ"
676 "セスが次の通知も受信したい場合は、 B<mq_notify>() を使ってその後の通知も受け"
677 "るように要求することができる。 B<mq_notify>() を再度呼び出すのは、読み出して"
678 "いないメッセージを全部読み出して キューが空になる前にすべきである (キューから"
679 "のメッセージ読み出しをキューが空になった時に 停止 (block) せずに行うには、"
680 "キューを非停止モード (non-blocking mode) に設定しておくとよい)。"
683 #: build/C/man3/mq_notify.3:140
685 "On success B<mq_notify>() returns 0; on error, -1 is returned, with "
686 "I<errno> set to indicate the error."
688 "成功すると、 B<mq_notify>() は 0 を返す。エラーの場合、-1 を返し、 I<errno> "
692 #: build/C/man3/mq_notify.3:146
698 #: build/C/man3/mq_notify.3:150
700 "Another process has already registered to receive notification for this "
703 "別のプロセスがすでに このメッセージキューに対する通知を受信するように登録して"
707 #: build/C/man3/mq_notify.3:160
709 "I<sevp-E<gt>sigev_notify> is not one of the permitted values; or I<sevp-"
710 "E<gt>sigev_notify> is B<SIGEV_SIGNAL> and I<sevp-E<gt>sigev_signo> is not a "
711 "valid signal number."
713 "I<sevp-E<gt>sigev_notify> が許可された値のいずれでもない。もしくは I<sevp-"
714 "E<gt>sigev_notify> が B<SIGEV_SIGNAL> だが I<sevp-E<gt>sigev_signo> が有効な"
718 #: build/C/man3/mq_notify.3:160 build/C/man3/mq_open.3:214
719 #: build/C/man2/msgget.2:173 build/C/man2/msgop.2:376
725 #: build/C/man3/mq_notify.3:163 build/C/man3/mq_open.3:217
726 msgid "Insufficient memory."
729 #. Linux does not do this
731 #: build/C/man3/mq_notify.3:174
733 "POSIX.1-2008 says that an implementation I<may> generate an B<EINVAL> error "
734 "if I<sevp> is NULL, and the caller is not currently registered to receive "
735 "notifications for the queue I<mqdes>."
737 "POSIX.1-2008 では、 I<sevp> が NULL で、呼び出し元のプロセスがキュー "
738 "I<mqdes> に関する通知を受信するように登録されていない場合、エラー B<EINVAL> "
739 "を生成するような実装を行っても「よい」ことになっている。"
742 #: build/C/man3/mq_notify.3:176 build/C/man7/mq_overview.7:278
748 #: build/C/man3/mq_notify.3:182
750 "The following program registers a notification request for the message queue "
751 "named in its command-line argument. Notification is performed by creating a "
752 "thread. The thread executes a function which reads one message from the "
753 "queue and then terminates the process."
755 "以下のプログラムは、 コマンドライン引き数で指定された名前のメッセージキューへ"
756 "の 通知要求を登録し、通知はスレッドの作成によって行われる。 そのスレッドは、"
757 "そのキューからメッセージを一つ読み出してから、 プロセスを終了する関数を実行す"
761 #: build/C/man3/mq_notify.3:182
763 msgid "Program source"
767 #: build/C/man3/mq_notify.3:189
770 "#include E<lt>pthread.hE<gt>\n"
771 "#include E<lt>mqueue.hE<gt>\n"
772 "#include E<lt>stdio.hE<gt>\n"
773 "#include E<lt>stdlib.hE<gt>\n"
774 "#include E<lt>unistd.hE<gt>\n"
776 "#include E<lt>pthread.hE<gt>\n"
777 "#include E<lt>mqueue.hE<gt>\n"
778 "#include E<lt>stdio.hE<gt>\n"
779 "#include E<lt>stdlib.hE<gt>\n"
780 "#include E<lt>unistd.hE<gt>\n"
783 #: build/C/man3/mq_notify.3:192
786 "#define handle_error(msg) \\e\n"
787 " do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
789 "#define handle_error(msg) \\e\n"
790 " do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
793 #: build/C/man3/mq_notify.3:200
796 "static void /* Thread start function */\n"
797 "tfunc(union sigval sv)\n"
799 " struct mq_attr attr;\n"
802 " mqd_t mqdes = *((mqd_t *) sv.sival_ptr);\n"
804 "static void /* スレッド開始関数 */\n"
805 "tfunc(union sigval sv)\n"
807 " struct mq_attr attr;\n"
810 " mqd_t mqdes = *((mqd_t *) sv.sival_ptr);\n"
813 #: build/C/man3/mq_notify.3:202
815 msgid " /* Determine max. msg size; allocate buffer to receive msg */\n"
817 " /* 最大メッセージサイズを決定し、\n"
818 " メッセージ受信用のバッファを確保する */\n"
821 #: build/C/man3/mq_notify.3:208
824 " if (mq_getattr(mqdes, &attr) == -1)\n"
825 " handle_error(\"mq_getattr\");\n"
826 " buf = malloc(attr.mq_msgsize);\n"
827 " if (buf == NULL)\n"
828 " handle_error(\"malloc\");\n"
830 " if (mq_getattr(mqdes, &attr) == -1)\n"
831 " handle_error(\"mq_getattr\");\n"
832 " buf = malloc(attr.mq_msgsize);\n"
833 " if (buf == NULL)\n"
834 " handle_error(\"malloc\");\n"
837 #: build/C/man3/mq_notify.3:212
840 " nr = mq_receive(mqdes, buf, attr.mq_msgsize, NULL);\n"
842 " handle_error(\"mq_receive\");\n"
844 " nr = mq_receive(mqdes, buf, attr.mq_msgsize, NULL);\n"
846 " handle_error(\"mq_receive\");\n"
849 #: build/C/man3/mq_notify.3:217
852 #| " printf(\"Read %ld bytes from MQ\\en\", (long) nr);\n"
854 #| " exit(EXIT_SUCCESS); /* Terminate the process */\n"
857 " printf(\"Read %zd bytes from MQ\\en\", nr);\n"
859 " exit(EXIT_SUCCESS); /* Terminate the process */\n"
862 " printf(\"Read %ld bytes from MQ\\en\", (long) nr);\n"
864 " exit(EXIT_SUCCESS); /* プロセスを終了する */\n"
868 #: build/C/man3/mq_notify.3:223
872 "main(int argc, char *argv[])\n"
875 " struct sigevent sev;\n"
878 "main(int argc, char *argv[])\n"
881 " struct sigevent sev;\n"
884 #: build/C/man3/mq_notify.3:228
887 " if (argc != 2) {\n"
888 " fprintf(stderr, \"Usage: %s E<lt>mq-nameE<gt>\\en\", argv[0]);\n"
889 " exit(EXIT_FAILURE);\n"
892 " if (argc != 2) {\n"
893 " fprintf(stderr, \"Usage: %s E<lt>mq-nameE<gt>\\en\", argv[0]);\n"
894 " exit(EXIT_FAILURE);\n"
898 #: build/C/man3/mq_notify.3:232
901 " mqdes = mq_open(argv[1], O_RDONLY);\n"
902 " if (mqdes == (mqd_t) -1)\n"
903 " handle_error(\"mq_open\");\n"
905 " mqdes = mq_open(argv[1], O_RDONLY);\n"
906 " if (mqdes == (mqd_t) -1)\n"
907 " handle_error(\"mq_open\");\n"
910 #: build/C/man3/mq_notify.3:239
913 " sev.sigev_notify = SIGEV_THREAD;\n"
914 " sev.sigev_notify_function = tfunc;\n"
915 " sev.sigev_notify_attributes = NULL;\n"
916 " sev.sigev_value.sival_ptr = &mqdes; /* Arg. to thread func. */\n"
917 " if (mq_notify(mqdes, &sev) == -1)\n"
918 " handle_error(\"mq_notify\");\n"
920 " sev.sigev_notify = SIGEV_THREAD;\n"
921 " sev.sigev_notify_function = tfunc;\n"
922 " sev.sigev_notify_attributes = NULL;\n"
923 " sev.sigev_value.sival_ptr = &mqdes; /* スレッド関数に渡す引き数 */\n"
924 " if (mq_notify(mqdes, &sev) == -1)\n"
925 " handle_error(\"mq_notify\");\n"
928 #: build/C/man3/mq_notify.3:242
931 " pause(); /* Process will be terminated by thread function */\n"
934 " pause(); /* プロセスはスレッド関数により終了される */\n"
938 #: build/C/man3/mq_notify.3:252
940 "B<mq_close>(3), B<mq_getattr>(3), B<mq_open>(3), B<mq_receive>(3), B<mq_send>"
941 "(3), B<mq_unlink>(3), B<mq_overview>(7), B<sigevent>(7)"
943 "B<mq_close>(3), B<mq_getattr>(3), B<mq_open>(3), B<mq_receive>(3), B<mq_send>"
944 "(3), B<mq_unlink>(3), B<mq_overview>(7), B<sigevent>(7)"
947 #: build/C/man3/mq_open.3:26
953 #: build/C/man3/mq_open.3:26
959 #: build/C/man3/mq_open.3:29
960 msgid "mq_open - open a message queue"
961 msgstr "mq_open - メッセージキューをオープンする"
964 #: build/C/man3/mq_open.3:34
967 "B<#include E<lt>fcntl.hE<gt>> /* For O_* constants */\n"
968 "B<#include E<lt>sys/stat.hE<gt>> /* For mode constants */\n"
969 "B<#include E<lt>mqueue.hE<gt>>\n"
971 "B<#include E<lt>fcntl.hE<gt>> /* For O_* constants */\n"
972 "B<#include E<lt>sys/stat.hE<gt>> /* For mode constants */\n"
973 "B<#include E<lt>mqueue.hE<gt>>\n"
976 #: build/C/man3/mq_open.3:38
979 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<);>\n"
980 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<, mode_t >I<mode>B<,>\n"
981 "B< struct mq_attr *>I<attr>B<);>\n"
983 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<);>\n"
984 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<, mode_t >I<mode>B<,>\n"
985 "B< struct mq_attr *>I<attr>B<);>\n"
988 #: build/C/man3/mq_open.3:50
990 "B<mq_open>() creates a new POSIX message queue or opens an existing queue. "
991 "The queue is identified by I<name>. For details of the construction of "
992 "I<name>, see B<mq_overview>(7)."
994 "B<mq_open>() は、新しい POSIX メッセージキューを作成するか、既存のキューを "
995 "オープンする。キューは I<name> で識別される。 I<name> の構成の詳細については "
996 "B<mq_overview (7)> を参照。"
999 #: build/C/man3/mq_open.3:58
1001 "The I<oflag> argument specifies flags that control the operation of the "
1002 "call. (Definitions of the flags values can be obtained by including "
1003 "I<E<lt>fcntl.hE<gt>>.) Exactly one of the following must be specified in "
1006 "I<oflag> 引き数には、関数呼び出しの操作を制御するフラグを指定する (oflag の値"
1007 "の定義は I<E<lt>fcntl.hE<gt>> のインクルードにより得られる)。 I<oflag> には、"
1008 "以下のうちいずれか一つを必ず指定しなければならない。"
1011 #: build/C/man3/mq_open.3:58
1014 msgstr "B<O_RDONLY>"
1017 #: build/C/man3/mq_open.3:61
1018 msgid "Open the queue to receive messages only."
1019 msgstr "メッセージの受信専用としてキューをオープンする。"
1022 #: build/C/man3/mq_open.3:61
1025 msgstr "B<O_WRONLY>"
1028 #: build/C/man3/mq_open.3:64
1029 msgid "Open the queue to send messages only."
1030 msgstr "メッセージの送信専用としてキューをオープンする。"
1033 #: build/C/man3/mq_open.3:64
1039 #: build/C/man3/mq_open.3:67
1040 msgid "Open the queue to both send and receive messages."
1041 msgstr "メッセージの送受信両用としてキューをオープンする。"
1044 #: build/C/man3/mq_open.3:72
1046 "Zero or more of the following flags can additionally be I<OR>ed in I<oflag>:"
1048 "0 個以上の下記のフラグを、ビット単位の OR (論理和) で I<oflag> に追加で指定で"
1052 #: build/C/man3/mq_open.3:72
1054 msgid "B<O_NONBLOCK>"
1055 msgstr "B<O_NONBLOCK>"
1058 #: build/C/man3/mq_open.3:81
1060 "Open the queue in nonblocking mode. In circumstances where B<mq_receive>"
1061 "(3) and B<mq_send>(3) would normally block, these functions instead fail "
1062 "with the error B<EAGAIN>."
1064 "非停止 (nonblocking) モードでキューをオープンする。 B<mq_receive>(3) と "
1065 "B<mq_send>(3) は、通常は停止 (block) する状況において、エラー B<EAGAIN> で失"
1069 #: build/C/man3/mq_open.3:81
1074 #. In reality the filesystem IDs are used on Linux.
1076 #: build/C/man3/mq_open.3:89
1078 "Create the message queue if it does not exist. The owner (user ID) of the "
1079 "message queue is set to the effective user ID of the calling process. The "
1080 "group ownership (group ID) is set to the effective group ID of the calling "
1083 "存在しない場合、メッセージキューを作成する。 メッセージキューの所有者 (ユー"
1084 "ザ ID) とグループ所有権 (グループ ID) は、 それぞれ呼び出し元プロセスの実効"
1085 "ユーザ ID と実効グループ ID に設定される。"
1088 #: build/C/man3/mq_open.3:89
1094 #: build/C/man3/mq_open.3:99
1096 "If B<O_CREAT> was specified in I<oflag>, and a queue with the given I<name> "
1097 "already exists, then fail with the error B<EEXIST>."
1099 "B<O_CREAT> が I<oflag> に指定され、かつ指定された名前 I<name> を持つキューが"
1100 "すでに存在する場合、エラー B<EEXIST> で失敗する。"
1103 #: build/C/man3/mq_open.3:123
1105 "If B<O_CREAT> is specified in I<oflag>, then two additional arguments must "
1106 "be supplied. The I<mode> argument specifies the permissions to be placed on "
1107 "the new queue, as for B<open>(2). (Symbolic definitions for the permissions "
1108 "bits can be obtained by including I<E<lt>sys/stat.hE<gt>>.) The permissions "
1109 "settings are masked against the process umask. The I<attr> argument "
1110 "specifies attributes for the queue. See B<mq_getattr>(3) for details. If "
1111 "I<attr> is NULL, then the queue is created with implementation-defined "
1112 "default attributes."
1114 "I<oflag> に B<O_CREAT> を指定する場合、追加で 2つの引き数を与える必要があ"
1115 "る。 I<mode> 引き数は、新しいキューに適用される許可設定 (permission) を、 "
1116 "B<open>(2) と同じように指定する (許可ビットのシンボル定義は I<E<lt>sys/stat."
1117 "hE<gt>> のインクルードにより得られる)。 許可設定はプロセスの umask でマスクさ"
1118 "れる。 I<attr> 引き数は、キューの属性を指定する。詳細は、 B<mq_getattr>(3) "
1119 "を参照。 I<attr> が NULL の場合、キューは実装で定義されたデフォルト属性で作成"
1123 #: build/C/man3/mq_open.3:135
1125 "On success, B<mq_open>() returns a message queue descriptor for use by "
1126 "other message queue functions. On error, B<mq_open>() returns I<(mqd_t)\\ "
1127 "-1>, with I<errno> set to indicate the error."
1129 "成功すると、 B<mq_open>() はメッセージキュー記述子 (message queue "
1130 "descriptor) を返す。 メッセージキュー記述子は他のメッセージキュー関連の関数で"
1131 "使用される。 エラーの場合、 B<mq_open>() は I<(mqd_t)\\ -1> を返し、 "
1132 "I<errno> にエラーを示す値を設定する。"
1135 #: build/C/man3/mq_open.3:136 build/C/man3/mq_open.3:140
1136 #: build/C/man3/mq_unlink.3:51 build/C/man2/msgctl.2:258
1137 #: build/C/man2/msgget.2:147 build/C/man2/msgop.2:340 build/C/man2/msgop.2:395
1143 #: build/C/man3/mq_open.3:140
1145 "The queue exists, but the caller does not have permission to open it in the "
1148 "キューは存在するが、呼び出し元が指定されたモードでそのキュー をオープンする許"
1151 #. Note that this isn't consistent with the same case for sem_open()
1153 #: build/C/man3/mq_open.3:145
1154 msgid "I<name> contained more than one slash."
1155 msgstr "I<name> にスラッシュが 2 個以上含まれていた。"
1158 #: build/C/man3/mq_open.3:145 build/C/man2/msgget.2:155
1164 #: build/C/man3/mq_open.3:156
1166 "Both B<O_CREAT> and B<O_EXCL> were specified in I<oflag>, but a queue with "
1167 "this I<name> already exists."
1169 "I<oflag> に B<O_CREAT> と B<O_EXCL> の両方が指定されたが、指定された名前 "
1170 "I<name> を持つキューがすでに存在する。"
1173 #: build/C/man3/mq_open.3:188
1175 "B<O_CREAT> was specified in I<oflag>, and I<attr> was not NULL, but I<attr-"
1176 "E<gt>mq_maxmsg> or I<attr-E<gt>mq_msqsize> was invalid. Both of these "
1177 "fields must be greater than zero. In a process that is unprivileged (does "
1178 "not have the B<CAP_SYS_RESOURCE> capability), I<attr-E<gt>mq_maxmsg> must be "
1179 "less than or equal to the I<msg_max> limit, and I<attr-E<gt>mq_msgsize> must "
1180 "be less than or equal to the I<msgsize_max> limit. In addition, even in a "
1181 "privileged process, I<attr-E<gt>mq_maxmsg> cannot exceed the B<HARD_MAX> "
1182 "limit. (See B<mq_overview>(7) for details of these limits.)"
1184 "I<oflag> に B<O_CREAT> が指定され、かつ I<attr> が NULL 以外だが、 I<attr-"
1185 "E<gt>mq_maxmsg> か I<attr-E<gt>mq_msqsize> が不正であった。 これらのフィール"
1186 "ドは両方とも 0 より大きくなければならない。 プロセスが特権を持たない "
1187 "(B<CAP_SYS_RESOURCE> ケーパビリティを持たない) 場合、 I<attr-E<gt>mq_maxmsg> "
1188 "と I<attr-E<gt>mq_msgsize> は、それぞれ上限 I<msg_max>、 I<msgsize_max> 以下"
1189 "でなければならない。 また、特権プロセスの場合でも、 I<attr-E<gt>mq_maxmsg> "
1190 "は B<HARD_MAX> 上限を超えることはできない。 (これらの上限に関する詳細は "
1191 "B<mq_overview>(7) を参照。)"
1194 #: build/C/man3/mq_open.3:188
1200 #: build/C/man3/mq_open.3:192
1202 "The process already has the maximum number of files and message queues open."
1204 "そのプロセスがオープンしているファイルとメッセージキューの数が プロセス毎の上"
1208 #: build/C/man3/mq_open.3:192 build/C/man3/mq_unlink.3:54
1210 msgid "B<ENAMETOOLONG>"
1211 msgstr "B<ENAMETOOLONG>"
1214 #: build/C/man3/mq_open.3:196 build/C/man3/mq_unlink.3:58
1215 msgid "I<name> was too long."
1216 msgstr "I<name> が長過ぎる。"
1219 #: build/C/man3/mq_open.3:196
1225 #: build/C/man3/mq_open.3:200
1227 "The system limit on the total number of open files and message queues has "
1230 "システム全体でオープンしているファイルとメッセージキューの合計数が システム上"
1234 #: build/C/man3/mq_open.3:200 build/C/man3/mq_open.3:209
1235 #: build/C/man3/mq_unlink.3:58 build/C/man2/msgget.2:165
1241 #: build/C/man3/mq_open.3:209
1243 "The B<O_CREAT> flag was not specified in I<oflag>, and no queue with this "
1246 "B<O_CREAT> フラグが I<oflag> に指定されなかったが、指定された名前 I<name> を"
1249 #. Note that this isn't consistent with the same case for sem_open()
1251 #: build/C/man3/mq_open.3:214
1252 msgid "I<name> was just \"/\" followed by no other characters."
1253 msgstr "I<name> が \"/\" だけで、その後ろに他の文字が続いていなかった。"
1256 #: build/C/man3/mq_open.3:217 build/C/man2/msgget.2:177
1262 #: build/C/man3/mq_open.3:224
1264 "Insufficient space for the creation of a new message queue. This probably "
1265 "occurred because the I<queues_max> limit was encountered; see B<mq_overview>"
1268 "新しいメッセージキューを作成するのに十分な空間がない。 このエラーはおそらく "
1269 "I<queues_max> 上限に抵触したため起こったのだろう。 B<mq_overview>(7) を参"
1273 #: build/C/man3/mq_open.3:226 build/C/man2/msgget.2:224
1274 #: build/C/man2/msgop.2:521
1280 #: build/C/man3/mq_open.3:230
1282 "In kernels before 2.6.14, the process umask was not applied to the "
1283 "permissions specified in I<mode>."
1285 "2.6.14 より前のカーネルには、 プロセスの umask が I<mode> で指定された許可設"
1289 #: build/C/man3/mq_open.3:238
1291 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_receive>(3), "
1292 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
1294 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_receive>(3), "
1295 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
1298 #: build/C/man7/mq_overview.7:26
1301 msgstr "MQ_OVERVIEW"
1304 #: build/C/man7/mq_overview.7:26
1310 #: build/C/man7/mq_overview.7:29
1311 msgid "mq_overview - overview of POSIX message queues"
1312 msgstr "mq_overview - POSIX メッセージキューの概要"
1315 #: build/C/man7/mq_overview.7:37
1317 "POSIX message queues allow processes to exchange data in the form of "
1318 "messages. This API is distinct from that provided by System V message "
1319 "queues (B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2), etc.), but provides "
1320 "similar functionality."
1322 "POSIX メッセージキューを使用すると、プロセス間で メッセージの形でのデータのや"
1323 "り取りを行うことができる。 この API は System V メッセージキューの API "
1324 "(B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2) など) とは異なるものだが、同様の機"
1328 #: build/C/man7/mq_overview.7:52
1330 "Message queues are created and opened using B<mq_open>(3); this function "
1331 "returns a I<message queue descriptor> (I<mqd_t>), which is used to refer to "
1332 "the open message queue in later calls. Each message queue is identified by "
1333 "a name of the form I</somename>; that is, a null-terminated string of up to "
1334 "B<NAME_MAX> (i.e., 255) characters consisting of an initial slash, followed "
1335 "by one or more characters, none of which are slashes. Two processes can "
1336 "operate on the same queue by passing the same name to B<mq_open>(3)."
1338 "メッセージキューの作成とオープンは B<mq_open>(3) を使って行う。この関数は I<"
1339 "メッセージキュー記述子 (message queue descriptor)> (I<mqd_t>) を返す。これ以"
1340 "降のコールでは、オープンされたメッセージキューは I<メッセージキュー記述子> を"
1341 "使って参照される。 各メッセージキューは I</somename> の形の名前で区別すること"
1342 "ができる。 その名前は、最大で B<NAME_MAX> (すなわち 255) 文字の NULL 終端され"
1343 "た文字列で、 スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式で"
1344 "ある。 B<mq_open>(3) に同じ名前を渡すことで、2つのプロセスで同一のキューを "
1348 #: build/C/man7/mq_overview.7:68
1350 "Messages are transferred to and from a queue using B<mq_send>(3) and "
1351 "B<mq_receive>(3). When a process has finished using the queue, it closes it "
1352 "using B<mq_close>(3), and when the queue is no longer required, it can be "
1353 "deleted using B<mq_unlink>(3). Queue attributes can be retrieved and (in "
1354 "some cases) modified using B<mq_getattr>(3) and B<mq_setattr>(3). A "
1355 "process can request asynchronous notification of the arrival of a message on "
1356 "a previously empty queue using B<mq_notify>(3)."
1358 "メッセージのキューへの送受信は B<mq_send>(3) と B<mq_receive>(3) を使って行"
1359 "う。プロセスがキューの使用を終えるときには、 B<mq_close>(3) を使ってキューを"
1360 "クローズする。キューがもはや不要となった場合には、 B<mq_unlink>(3) を使って"
1361 "キューを削除できる。キューの属性は B<mq_getattr>(3) で取得でき、 (制限はある"
1362 "が) B<mq_setattr>(3) で変更できる。 B<mq_notify>(3) を使うことで、空の"
1363 "キューへのメッセージ到着を非同期で 通知するように要求することもできる。"
1366 #: build/C/man7/mq_overview.7:81
1368 "A message queue descriptor is a reference to an I<open message queue "
1369 "description> (cf. B<open>(2)). After a B<fork>(2), a child inherits copies "
1370 "of its parent's message queue descriptors, and these descriptors refer to "
1371 "the same open message queue descriptions as the corresponding descriptors in "
1372 "the parent. Corresponding descriptors in the two processes share the flags "
1373 "(I<mq_flags>) that are associated with the open message queue description."
1375 "メッセージキュー記述子は I<オープンメッセージキュー記述 (open message queue "
1376 "description)> への参照である (B<open>(2) も参照)。 B<fork>(2) 実行後は、子"
1377 "プロセスは親プロセスのメッセージキュー記述子のコピーを継承する。 これらの記述"
1378 "子は、親プロセスの対応する記述子と同じオープンメッセージキュー 記述を参照して"
1379 "いる。親プロセスと子プロセスの対応する記述子は、フラグ (I<mq_flags>) を共有"
1380 "する。なぜなら、フラグはオープンメッセージキュー記述に 関連付けられているから"
1384 #: build/C/man7/mq_overview.7:94
1386 "Each message has an associated I<priority>, and messages are always "
1387 "delivered to the receiving process highest priority first. Message "
1388 "priorities range from 0 (low) to I<sysconf(_SC_MQ_PRIO_MAX)\\ -\\ 1> "
1389 "(high). On Linux, I<sysconf(_SC_MQ_PRIO_MAX)> returns 32768, but "
1390 "POSIX.1-2001 requires only that an implementation support at least "
1391 "priorities in the range 0 to 31; some implementations provide only this "
1394 "各メッセージにはそれぞれ I<優先度 (priority)> があり、メッセージの受信プロセ"
1395 "スへの配送は常に 優先度の高いメッセージから順に行われる。 メッセージの優先度"
1396 "は 0 (低優先) から I<sysconf(_SC_MQ_PRIO_MAX)\\ -\\ 1> (高優先) の値を持つ。 "
1397 "Linux では、 I<sysconf(_SC_MQ_PRIO_MAX)> は 32768 を返すが、 POSIX.1-2001 で"
1398 "要求されているのは最低限 0 から 31 までの優先度を実装することだけであり、実装"
1399 "によってはこの範囲の優先度しかサポートされていない。"
1402 #: build/C/man7/mq_overview.7:97
1404 "The remainder of this section describes some specific details of the Linux "
1405 "implementation of POSIX message queues."
1407 "この節の残りでは、POSIX メッセージキューの Linux の実装の詳細 について説明す"
1411 #: build/C/man7/mq_overview.7:97
1413 msgid "Library interfaces and system calls"
1414 msgstr "ライブラリインタフェースとシステムコール"
1417 #: build/C/man7/mq_overview.7:103
1419 "In most cases the B<mq_*>() library interfaces listed above are implemented "
1420 "on top of underlying system calls of the same name. Deviations from this "
1421 "scheme are indicated in the following table:"
1423 "ほとんどの場合、上記の B<mq_*>() ライブラリインタフェースは、同じ名前の下位層"
1424 "のシステムコールを 使って実装されている。この枠組みにあてはまらないものを 以"
1428 #: build/C/man7/mq_overview.7:107
1430 msgid "Library interface\tSystem call\n"
1431 msgstr "Library interface\tSystem call\n"
1434 #: build/C/man7/mq_overview.7:108
1436 msgid "mq_close(3)\tclose(2)\n"
1437 msgstr "mq_close(3)\tclose(2)\n"
1440 #: build/C/man7/mq_overview.7:109
1442 msgid "mq_getattr(3)\tmq_getsetattr(2)\n"
1443 msgstr "mq_getattr(3)\tmq_getsetattr(2)\n"
1446 #: build/C/man7/mq_overview.7:110
1448 msgid "mq_notify(3)\tmq_notify(2)\n"
1449 msgstr "mq_notify(3)\tmq_notify(2)\n"
1452 #: build/C/man7/mq_overview.7:111
1454 msgid "mq_open(3)\tmq_open(2)\n"
1455 msgstr "mq_open(3)\tmq_open(2)\n"
1458 #: build/C/man7/mq_overview.7:112
1460 msgid "mq_receive(3)\tmq_timedreceive(2)\n"
1461 msgstr "mq_receive(3)\tmq_timedreceive(2)\n"
1464 #: build/C/man7/mq_overview.7:113
1466 msgid "mq_send(3)\tmq_timedsend(2)\n"
1467 msgstr "mq_send(3)\tmq_timedsend(2)\n"
1470 #: build/C/man7/mq_overview.7:114
1472 msgid "mq_setattr(3)\tmq_getsetattr(2)\n"
1473 msgstr "mq_setattr(3)\tmq_getsetattr(2)\n"
1476 #: build/C/man7/mq_overview.7:115
1478 msgid "mq_timedreceive(3)\tmq_timedreceive(2)\n"
1479 msgstr "mq_timedreceive(3)\tmq_timedreceive(2)\n"
1482 #: build/C/man7/mq_overview.7:116
1484 msgid "mq_timedsend(3)\tmq_timedsend(2)\n"
1485 msgstr "mq_timedsend(3)\tmq_timedsend(2)\n"
1488 #: build/C/man7/mq_overview.7:117
1490 msgid "mq_unlink(3)\tmq_unlink(2)\n"
1491 msgstr "mq_unlink(3)\tmq_unlink(2)\n"
1494 #: build/C/man7/mq_overview.7:120
1500 #: build/C/man7/mq_overview.7:123
1502 "POSIX message queues have been supported on Linux since kernel 2.6.6. Glibc "
1503 "support has been provided since version 2.3.4."
1505 "Linux では POSIX メッセージキューはカーネル 2.6.6 以降でサポートされている。 "
1506 "glibc ではバージョン 2.3.4 以降でサポートされている。"
1509 #: build/C/man7/mq_overview.7:123
1511 msgid "Kernel configuration"
1515 #: build/C/man7/mq_overview.7:128
1517 "Support for POSIX message queues is configurable via the "
1518 "B<CONFIG_POSIX_MQUEUE> kernel configuration option. This option is enabled "
1521 "POSIX メッセージキューのサポートは、カーネルの設定 (configuration) オプショ"
1522 "ン B<CONFIG_POSIX_MQUEUE> で設定可能である。このオプションはデフォルトでは有"
1526 #: build/C/man7/mq_overview.7:128
1532 #: build/C/man7/mq_overview.7:133
1534 "POSIX message queues have kernel persistence: if not removed by B<mq_unlink>"
1535 "(3), a message queue will exist until the system is shut down."
1537 "POSIX メッセージキューはカーネル内で保持される。 B<mq_unlink>(3) で削除され"
1538 "なければ、メッセージキューは システムがシャットダウンされるまで存在し続ける。"
1541 #: build/C/man7/mq_overview.7:133
1547 #: build/C/man7/mq_overview.7:138
1549 "Programs using the POSIX message queue API must be compiled with I<cc -lrt> "
1550 "to link against the real-time library, I<librt>."
1552 "POSIX メッセージキュー API を使用したプログラムは I<cc -lrt> でコンパイルし、"
1553 "リアルタイムライブラリ I<librt> とリンクしなければならない。"
1556 #: build/C/man7/mq_overview.7:138
1558 msgid "/proc interfaces"
1559 msgstr "/proc インタフェース"
1562 #: build/C/man7/mq_overview.7:141
1564 "The following interfaces can be used to limit the amount of kernel memory "
1565 "consumed by POSIX message queues:"
1567 "以下のインタフェースを使って、POSIX メッセージキューが消費するカーネル メモリ"
1571 #: build/C/man7/mq_overview.7:141
1573 msgid "I</proc/sys/fs/mqueue/msg_max>"
1574 msgstr "I</proc/sys/fs/mqueue/msg_max>"
1577 #: build/C/man7/mq_overview.7:162
1579 "This file can be used to view and change the ceiling value for the maximum "
1580 "number of messages in a queue. This value acts as a ceiling on the I<attr-"
1581 "E<gt>mq_maxmsg> argument given to B<mq_open>(3). The default value for "
1582 "I<msg_max> is 10. The minimum value is 1 (10 in kernels before 2.6.28). "
1583 "The upper limit is B<HARD_MAX>: I<(131072\\ /\\ sizeof(void\\ *))> (32768 on "
1584 "Linux/86). This limit is ignored for privileged processes "
1585 "(B<CAP_SYS_RESOURCE>), but the B<HARD_MAX> ceiling is nevertheless imposed."
1587 "このファイルを使って、一つのキューに入れられるメッセージの最大数の 上限値を参"
1588 "照したり変更したりできる。この値は、 B<mq_open>(3) に渡す I<attr-"
1589 "E<gt>mq_maxmsg> 引き数に対する上限値として機能する。 I<msg_max> のデフォルト"
1590 "値は 10 で、 最小値は 1 (2.6.28 より前のカーネルでは 10) である。 上限は「埋"
1591 "め込みの固定値」 (B<HARD_MAX>) で I<(131072\\ /\\ sizeof(void\\ *))> "
1592 "(Linux/86 では 32768) である。 この上限は特権プロセス (B<CAP_SYS_RESOURCE>) "
1593 "では無視されるが、埋め込みの固定値による上限は どんな場合にでも適用される。"
1596 #: build/C/man7/mq_overview.7:162
1598 msgid "I</proc/sys/fs/mqueue/msgsize_max>"
1599 msgstr "I</proc/sys/fs/mqueue/msgsize_max>"
1602 #: build/C/man7/mq_overview.7:181
1604 "This file can be used to view and change the ceiling on the maximum message "
1605 "size. This value acts as a ceiling on the I<attr-E<gt>mq_msgsize> argument "
1606 "given to B<mq_open>(3). The default value for I<msgsize_max> is 8192 "
1607 "bytes. The minimum value is 128 (8192 in kernels before 2.6.28). The upper "
1608 "limit for I<msgsize_max> is 1,048,576 (in kernels before 2.6.28, the upper "
1609 "limit was B<INT_MAX>; that is, 2,147,483,647 on Linux/86). This limit is "
1610 "ignored for privileged processes (B<CAP_SYS_RESOURCE>)."
1612 "このファイルを使って、メッセージの最大サイズの上限値を\t 参照したり変更したり"
1613 "できる。\t この値は、\t B<mq_open>(3)\t に渡す\t I<attr-E<gt>mq_msgsize> 引き"
1614 "数に対する上限値として機能する。\t I<msgsize_max\t> のデフォルト値は 8192 バ"
1615 "イトで、 最小値は 128 (2.6.28 より前のカーネルでは 8192) である。 "
1616 "I<msgsize_max> の上限は 1,048,576 である (2.6.28 より前のカーネルでは、上限"
1617 "は B<INT_MAX> (Linux/86 では 2,147,483,647) であった)。 この上限は特権プロセ"
1618 "ス\t (B<CAP_SYS_RESOURCE>)\t では無視される。"
1621 #: build/C/man7/mq_overview.7:181
1623 msgid "I</proc/sys/fs/mqueue/queues_max>"
1624 msgstr "I</proc/sys/fs/mqueue/queues_max>"
1627 #: build/C/man7/mq_overview.7:191
1629 "This file can be used to view and change the system-wide limit on the number "
1630 "of message queues that can be created. Only privileged processes "
1631 "(B<CAP_SYS_RESOURCE>) can create new message queues once this limit has "
1632 "been reached. The default value for I<queues_max> is 256; it can be changed "
1633 "to any value in the range 0 to INT_MAX."
1635 "このファイルを使って、作成することができるメッセージキューの数に\t 対するシス"
1636 "テム全体での制限を参照したり変更したりできる。\t 一度この上限に達すると、新し"
1637 "いメッセージキューを作成できるのは\t 特権プロセス\t (B<CAP_SYS_RESOURCE>)\t "
1638 "だけとなる。\t I<queues_max\t> のデフォルト値は 256 であり、\t 0 から "
1639 "INT_MAX の範囲の任意の値に変更することができる。"
1642 #: build/C/man7/mq_overview.7:191
1644 msgid "Resource limit"
1648 #: build/C/man7/mq_overview.7:198
1650 "The B<RLIMIT_MSGQUEUE> resource limit, which places a limit on the amount of "
1651 "space that can be consumed by all of the message queues belonging to a "
1652 "process's real user ID, is described in B<getrlimit>(2)."
1654 "リソース上限 B<RLIMIT_MSGQUEUE> は、プロセスの実 UID に対応する全メッセージ"
1655 "キューが消費する メモリ空間の量に対して上限を設定する。 B<getrlimit>(2) を参"
1659 #: build/C/man7/mq_overview.7:198
1661 msgid "Mounting the message queue filesystem"
1662 msgstr "メッセージキュー・ファイルシステムのマウント"
1665 #: build/C/man7/mq_overview.7:204
1667 "On Linux, message queues are created in a virtual filesystem. (Other "
1668 "implementations may also provide such a feature, but the details are likely "
1669 "to differ.) This filesystem can be mounted (by the superuser) using the "
1670 "following commands:"
1672 "Linux では、メッセージキューは仮想ファイルシステム内に作成される (他の実装で"
1673 "も同様の機能が提供されているものもあるが、 詳細は違っているだろう)。 以下のコ"
1674 "マンドを使うことで (スーパーユーザは) このファイルシステムをマウントできる:"
1677 #: build/C/man7/mq_overview.7:209
1680 "#B< mkdir /dev/mqueue>\n"
1681 "#B< mount -t mqueue none /dev/mqueue>\n"
1683 "#B< mkdir /dev/mqueue>\n"
1684 "#B< mount -t mqueue none /dev/mqueue>\n"
1687 #: build/C/man7/mq_overview.7:213
1688 msgid "The sticky bit is automatically enabled on the mount directory."
1690 "マウントしたディレクトリのスティッキービット (sticky bit) は 自動的にオンとな"
1694 #: build/C/man7/mq_overview.7:220
1696 "After the filesystem has been mounted, the message queues on the system can "
1697 "be viewed and manipulated using the commands usually used for files (e.g., "
1698 "B<ls>(1) and B<rm>(1))."
1700 "メッセージキュー・ファイルシステムのマウント後は、ファイルに対して 通常使うコ"
1701 "マンド (例えば B<ls>(1) や B<rm>(1)) を使って、システム上のメッセージキュー"
1705 #: build/C/man7/mq_overview.7:223
1707 "The contents of each file in the directory consist of a single line "
1708 "containing information about the queue:"
1710 "ディレクトリ内の各ファイルの内容は 1行であり、 キューに関する情報が表示され"
1714 #: build/C/man7/mq_overview.7:228
1717 "$B< cat /dev/mqueue/mymq>\n"
1718 "QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260\n"
1720 "$B< cat /dev/mqueue/mymq>\n"
1721 "QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260\n"
1724 #: build/C/man7/mq_overview.7:232
1725 msgid "These fields are as follows:"
1726 msgstr "各フィールドの詳細は以下の通りである:"
1729 #: build/C/man7/mq_overview.7:232
1735 #: build/C/man7/mq_overview.7:235
1736 msgid "Number of bytes of data in all messages in the queue."
1737 msgstr "キューに入っている全メッセージの合計バイト数。"
1740 #: build/C/man7/mq_overview.7:235
1742 msgid "B<NOTIFY_PID>"
1743 msgstr "B<NOTIFY_PID>"
1746 #: build/C/man7/mq_overview.7:241
1748 "If this is nonzero, then the process with this PID has used B<mq_notify>(3) "
1749 "to register for asynchronous message notification, and the remaining fields "
1750 "describe how notification occurs."
1752 "この値が 0 以外の場合、この値の PID を持つプロセスが B<mq_notify>(3) を使っ"
1753 "て、非同期のメッセージ通知を行うように設定したことを示す。 どのように通知が行"
1754 "われるかは、以下のフィールドにより決定される。"
1757 #: build/C/man7/mq_overview.7:241
1763 #: build/C/man7/mq_overview.7:251
1765 "Notification method: 0 is B<SIGEV_SIGNAL>; 1 is B<SIGEV_NONE>; and 2 is "
1768 "通知方法: 0 は B<SIGEV_SIGNAL>; 1 は B<SIGEV_NONE>; 2 は B<SIGEV_THREAD>"
1771 #: build/C/man7/mq_overview.7:251
1777 #: build/C/man7/mq_overview.7:255
1778 msgid "Signal number to be used for B<SIGEV_SIGNAL>."
1779 msgstr "B<SIGEV_SIGNAL> に使用されるシグナル番号。"
1782 #: build/C/man7/mq_overview.7:255
1784 msgid "Polling message queue descriptors"
1785 msgstr "メッセージキュー記述子のポーリング"
1788 #: build/C/man7/mq_overview.7:263
1790 "On Linux, a message queue descriptor is actually a file descriptor, and can "
1791 "be monitored using B<select>(2), B<poll>(2), or B<epoll>(7). This is not "
1794 "Linux では、メッセージキュー記述子は実際はファイル記述子 (file descriptor) "
1795 "であり、 B<select>(2), B<poll>(2), B<epoll>(7) を使って監視することができ"
1799 #: build/C/man7/mq_overview.7:275
1801 "System V message queues (B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2), etc.) are "
1802 "an older API for exchanging messages between processes. POSIX message "
1803 "queues provide a better designed interface than System V message queues; on "
1804 "the other hand POSIX message queues are less widely available (especially on "
1805 "older systems) than System V message queues."
1807 "System V メッセージキュー (B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2) など) は"
1808 "プロセス間でメッセージをやり取りするための古い API である。 POSIX メッセージ"
1809 "キューは System V メッセージキューよりもうまく 設計されたインタフェースを提供"
1810 "している。 一方で、POSIX メッセージキューは System V メッセージキューと比べる"
1811 "と 利用できるシステムが少ない (特に、古いシステムでは少ない)。"
1814 #: build/C/man7/mq_overview.7:278
1816 "Linux does not currently (2.6.26) support the use of access control lists "
1817 "(ACLs) for POSIX message queues."
1819 "現在のことろ (バージョン 2.6.26 時点)、 Linux は POSIX メッセージキューに対す"
1820 "るアクセス制御リスト (ACL) に 対応していない。"
1823 #: build/C/man7/mq_overview.7:281
1825 "An example of the use of various message queue functions is shown in "
1828 "各種のメッセージキュー関数を使用した例が B<mq_notify>(3) に記載されている。"
1831 #: build/C/man7/mq_overview.7:294
1833 "B<getrlimit>(2), B<mq_getsetattr>(2), B<poll>(2), B<select>(2), B<mq_close>"
1834 "(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
1835 "B<mq_send>(3), B<mq_unlink>(3), B<epoll>(7)"
1837 "B<getrlimit>(2), B<mq_getsetattr>(2), B<poll>(2), B<select>(2), B<mq_close>"
1838 "(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
1839 "B<mq_send>(3), B<mq_unlink>(3), B<epoll>(7)"
1842 #: build/C/man3/mq_receive.3:26
1848 #: build/C/man3/mq_receive.3:26 build/C/man3/mq_send.3:26
1854 #: build/C/man3/mq_receive.3:29
1855 msgid "mq_receive, mq_timedreceive - receive a message from a message queue"
1856 msgstr "mq_receive, mq_timedreceive - メッセージキューからメッセージを受信する"
1859 #: build/C/man3/mq_receive.3:35
1862 "B<ssize_t mq_receive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
1863 "B< size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<);>\n"
1865 "B<ssize_t mq_receive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
1866 "B< size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<);>\n"
1869 #: build/C/man3/mq_receive.3:38 build/C/man3/mq_send.3:38
1872 "B<#include E<lt>time.hE<gt>>\n"
1873 "B<#include E<lt>mqueue.hE<gt>>\n"
1875 "B<#include E<lt>time.hE<gt>>\n"
1876 "B<#include E<lt>mqueue.hE<gt>>\n"
1879 #: build/C/man3/mq_receive.3:42
1882 "B<ssize_t mq_timedreceive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
1883 "B< size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<,>\n"
1884 "B< const struct timespec *>I<abs_timeout>B<);>\n"
1886 "B<ssize_t mq_timedreceive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
1887 "B< size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<,>\n"
1888 "B< const struct timespec *>I<abs_timeout>B<);>\n"
1891 #: build/C/man3/mq_receive.3:50 build/C/man3/mq_send.3:50
1893 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1894 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
1897 #: build/C/man3/mq_receive.3:53
1898 msgid "B<mq_timedreceive>():"
1899 msgstr "B<mq_timedreceive>():"
1902 #: build/C/man3/mq_receive.3:55 build/C/man3/mq_send.3:55
1903 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
1904 msgstr "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
1907 #: build/C/man3/mq_receive.3:76
1909 "B<mq_receive>() removes the oldest message with the highest priority from "
1910 "the message queue referred to by the descriptor I<mqdes>, and places it in "
1911 "the buffer pointed to by I<msg_ptr>. The I<msg_len> argument specifies the "
1912 "size of the buffer pointed to by I<msg_ptr>; this must be greater than or "
1913 "equal to the I<mq_msgsize> attribute of the queue (see B<mq_getattr>(3)). "
1914 "If I<msg_prio> is not NULL, then the buffer to which it points is used to "
1915 "return the priority associated with the received message."
1917 "B<mq_receive>() は、記述子 I<mqdes> で参照されるメッセージキューから最も高い"
1918 "優先度を持つ 最も古いメッセージを削除し、そのメッセージを I<msg_ptr> が指す"
1919 "バッファに格納する。 I<msg_len> 引き数は、 I<msg_ptr> が指すバッファの大きさ"
1920 "を示す。この値はキューの I<mq_msgsize> 属性以上でなければならない "
1921 "(B<mq_getattr>(3) 参照)。 I<msg_prio> が NULL 以外の場合、 I<msg_prio> が指"
1922 "すバッファに受信したメッセージの優先度が格納される。"
1925 #: build/C/man3/mq_receive.3:86
1927 "If the queue is empty, then, by default, B<mq_receive>() blocks until a "
1928 "message becomes available, or the call is interrupted by a signal handler. "
1929 "If the B<O_NONBLOCK> flag is enabled for the message queue description, then "
1930 "the call instead fails immediately with the error B<EAGAIN>."
1932 "キューが空の場合、デフォルトでは、 B<mq_receive>() は、新しいメッセージが届"
1933 "くか、関数呼び出しがシグナルハンドラにより 中断されるまで、停止 (block) す"
1934 "る。 メッセージキュー記述 (message queue description) で B<O_NONBLOCK> フラグ"
1935 "が有効になっている場合は、 B<mq_receive>() はエラー B<EAGAIN> ですぐに失敗す"
1939 #: build/C/man3/mq_receive.3:99
1941 "B<mq_timedreceive>() behaves just like B<mq_receive>(), except that if the "
1942 "queue is empty and the B<O_NONBLOCK> flag is not enabled for the message "
1943 "queue description, then I<abs_timeout> points to a structure which specifies "
1944 "a ceiling on the time for which the call will block. This ceiling is an "
1945 "absolute timeout in seconds and nanoseconds since the Epoch, 1970-01-01 "
1946 "00:00:00 +0000 (UTC), and it is specified in the following structure:"
1948 "B<mq_timedreceive>() は B<mq_receive>() と全く同じ動作をするが、 メッセージ"
1949 "キューが空で、メッセージキュー記述で B<O_NONBLOCK> フラグが有効になっていない"
1950 "場合に、この呼び出しが停止する時間の上限を I<abs_timeout> が指す構造体で指定"
1951 "する点が異なる。この上限は、タイムアウトの時刻を、 時刻紀元 (Epoch; "
1952 "1970-01-01 00:00:00 +0000 (UTC)) からの経過時間 (秒とナノ秒の組) で指定する。"
1953 "タイムアウト時刻は以下の構造体で指定する:"
1956 #: build/C/man3/mq_receive.3:106 build/C/man3/mq_send.3:112
1959 "struct timespec {\n"
1960 " time_t tv_sec; /* seconds */\n"
1961 " long tv_nsec; /* nanoseconds */\n"
1964 "struct timespec {\n"
1965 " time_t tv_sec; /* 秒 */\n"
1966 " long tv_nsec; /* ナノ秒 */\n"
1970 #: build/C/man3/mq_receive.3:113
1972 "If no message is available, and the timeout has already expired by the time "
1973 "of the call, B<mq_timedreceive>() returns immediately."
1975 "メッセージがキューになく、関数呼び出し時にすでにタイムアウト時刻が 過ぎている"
1976 "場合、 B<mq_timedreceive>() はすぐに返る。"
1979 #: build/C/man3/mq_receive.3:122
1981 "On success, B<mq_receive>() and B<mq_timedreceive>() return the number of "
1982 "bytes in the received message; on error, -1 is returned, with I<errno> set "
1983 "to indicate the error."
1985 "成功すると、 B<mq_receive>() と B<mq_timedreceive>() は受信したメッセージの"
1986 "バイト数を返す。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定す"
1990 #: build/C/man3/mq_receive.3:123 build/C/man3/mq_send.3:128
1991 #: build/C/man2/msgop.2:346 build/C/man2/msgop.2:401
1997 #: build/C/man3/mq_receive.3:129
1999 "The queue was empty, and the B<O_NONBLOCK> flag was set for the message "
2000 "queue description referred to by I<mqdes>."
2002 "キューが空で、かつ I<mqdes> で参照されるメッセージキュー記述で B<O_NONBLOCK> "
2006 #: build/C/man3/mq_receive.3:134 build/C/man3/mq_send.3:139
2007 msgid "The descriptor specified in I<mqdes> was invalid."
2008 msgstr "I<mqdes> で指定された記述子が不正である。"
2011 #: build/C/man3/mq_receive.3:134 build/C/man3/mq_send.3:139
2012 #: build/C/man2/msgop.2:362 build/C/man2/msgop.2:416
2018 #: build/C/man3/mq_receive.3:138 build/C/man3/mq_send.3:143
2019 msgid "The call was interrupted by a signal handler; see B<signal>(7)."
2020 msgstr "関数呼び出しがシグナルハンドラにより中断された。 B<signal>(7) 参照。"
2023 #: build/C/man3/mq_receive.3:147 build/C/man3/mq_send.3:152
2025 "The call would have blocked, and I<abs_timeout> was invalid, either because "
2026 "I<tv_sec> was less than zero, or because I<tv_nsec> was less than zero or "
2027 "greater than 1000 million."
2029 "関数呼び出しは停止するはずであったが、 I<abs_timeout> が不正であった。 "
2030 "I<abs_timeout> が不正とは、 I<tv_sec> が 0 未満、もしくは I<tv_nsec> が 0 未"
2031 "満か 1,000,000,000 より大きい、ということである。"
2034 #: build/C/man3/mq_receive.3:147 build/C/man3/mq_send.3:152
2037 msgstr "B<EMSGSIZE>"
2040 #: build/C/man3/mq_receive.3:153
2042 "I<msg_len> was less than the I<mq_msgsize> attribute of the message queue."
2043 msgstr "I<msg_len> がメッセージキューの I<mq_msgsize> 属性よりも小さかった。"
2046 #: build/C/man3/mq_receive.3:153 build/C/man3/mq_send.3:158
2048 msgid "B<ETIMEDOUT>"
2049 msgstr "B<ETIMEDOUT>"
2052 #: build/C/man3/mq_receive.3:156 build/C/man3/mq_send.3:161
2053 msgid "The call timed out before a message could be transferred."
2054 msgstr "メッセージが転送される前に関数呼び出しがタイムアウトした。"
2057 #: build/C/man3/mq_receive.3:164
2059 "On Linux, B<mq_timedreceive>() is a system call, and B<mq_receive>() is a "
2060 "library function layered on top of that system call."
2062 "Linux では、 B<mq_timedreceive>() はシステムコールである。 B<mq_receive>() "
2063 "はライブラリ関数で、 B<mq_timedreceive>() システムコールを用いて実装されてい"
2067 #: build/C/man3/mq_receive.3:173
2069 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_send>"
2070 "(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2072 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_send>"
2073 "(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2076 #: build/C/man3/mq_send.3:26
2082 #: build/C/man3/mq_send.3:29
2083 msgid "mq_send, mq_timedsend - send a message to a message queue"
2084 msgstr "mq_send, mq_timedsend - メッセージキューにメッセージを送信する"
2087 #: build/C/man3/mq_send.3:35
2090 "B<int mq_send(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2091 "B< size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<);>\n"
2093 "B<int mq_send(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2094 "B< size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<);>\n"
2097 #: build/C/man3/mq_send.3:42
2100 "B<int mq_timedsend(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2101 "B< size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<,>\n"
2102 "B< const struct timespec *>I<abs_timeout>B<);>\n"
2104 "B<int mq_timedsend(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2105 "B< size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<,>\n"
2106 "B< const struct timespec *>I<abs_timeout>B<);>\n"
2109 #: build/C/man3/mq_send.3:53
2110 msgid "B<mq_timedsend>():"
2111 msgstr "B<mq_timedsend>():"
2114 #: build/C/man3/mq_send.3:71
2116 "B<mq_send>() adds the message pointed to by I<msg_ptr> to the message queue "
2117 "referred to by the descriptor I<mqdes>. The I<msg_len> argument specifies "
2118 "the length of the message pointed to by I<msg_ptr>; this length must be less "
2119 "than or equal to the queue's I<mq_msgsize> attribute. Zero-length messages "
2122 "B<mq_send>() は、記述子 I<mqdes> で参照されるメッセージキューに I<msg_ptr> "
2123 "が指すメッセージを追加する。 I<msg_len> 引き数は、 I<msg_ptr> が指すメッセー"
2124 "ジの長さを示す。この長さはキューの I<mq_msgsize> 属性以下でなければならな"
2125 "い。 長さが 0 のメッセージも認められている。"
2128 #: build/C/man3/mq_send.3:79
2130 "The I<msg_prio> argument is a nonnegative integer that specifies the "
2131 "priority of this message. Messages are placed on the queue in decreasing "
2132 "order of priority, with newer messages of the same priority being placed "
2133 "after older messages with the same priority."
2135 "I<msg_prio> 引き数は、メッセージの優先度を指定する負でない整数である。 メッ"
2136 "セージは優先度の降順でキューに格納され、同じ優先度の新しいメッセージは 同じ優"
2137 "先度の古いメッセージの後ろに格納される。"
2140 #: build/C/man3/mq_send.3:92
2142 "If the message queue is already full (i.e., the number of messages on the "
2143 "queue equals the queue's I<mq_maxmsg> attribute), then, by default, "
2144 "B<mq_send>() blocks until sufficient space becomes available to allow the "
2145 "message to be queued, or until the call is interrupted by a signal handler. "
2146 "If the B<O_NONBLOCK> flag is enabled for the message queue description, then "
2147 "the call instead fails immediately with the error B<EAGAIN>."
2149 "メッセージキューがすでに一杯の場合 (すなわち、キューに入っているメッセージ数"
2150 "がキューの I<mq_maxmsg> 属性と等しい場合)、デフォルトでは、 B<mq_send ()> "
2151 "は、メッセージをキューイングするのに十分な空間ができるか、 関数呼び出しがシグ"
2152 "ナルハンドラにより中断されるまで、停止 (block) する。 メッセージキュー記述 "
2153 "(message queue description) で B<O_NONBLOCK> フラグが有効になっている場合"
2154 "は、 B<mq_send>() はエラー B<EAGAIN> ですぐに失敗する。"
2157 #: build/C/man3/mq_send.3:105
2159 "B<mq_timedsend>() behaves just like B<mq_send>(), except that if the queue "
2160 "is full and the B<O_NONBLOCK> flag is not enabled for the message queue "
2161 "description, then I<abs_timeout> points to a structure which specifies a "
2162 "ceiling on the time for which the call will block. This ceiling is an "
2163 "absolute timeout in seconds and nanoseconds since the Epoch, 1970-01-01 "
2164 "00:00:00 +0000 (UTC), and it is specified in the following structure:"
2166 "B<mq_timedsend>() は B<mq_send>() と全く同じ動作をするが、 メッセージキュー"
2167 "が一杯で、メッセージキュー記述で B<O_NONBLOCK> フラグが有効になっていない場合"
2168 "に、この呼び出しが停止する時間の上限を I<abs_timeout> が指す構造体で指定する"
2169 "点が異なる。この上限は、タイムアウトの時刻を 時刻紀元 (Epoch; 1970-01-01 "
2170 "00:00:00 +0000 (UTC)) からの経過時間 (秒とナノ秒の組) で指定する。タイムアウ"
2174 #: build/C/man3/mq_send.3:119
2176 "If the message queue is full, and the timeout has already expired by the "
2177 "time of the call, B<mq_timedsend>() returns immediately."
2179 "メッセージキューが一杯で、関数呼び出し時にすでにタイムアウト時刻が 過ぎている"
2180 "場合、 B<mq_timedsend>() はすぐに返る。"
2183 #: build/C/man3/mq_send.3:127
2185 "On success, B<mq_send>() and B<mq_timedsend>() return zero; on error, -1 "
2186 "is returned, with I<errno> set to indicate the error."
2188 "成功すると、 B<mq_send>() と B<mq_timedsend>() は 0 を返す。 エラーの場"
2189 "合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
2192 #: build/C/man3/mq_send.3:134
2194 "The queue was full, and the B<O_NONBLOCK> flag was set for the message queue "
2195 "description referred to by I<mqdes>."
2197 "キューが一杯で、かつ I<mqdes> で参照されるメッセージキュー記述で "
2198 "B<O_NONBLOCK> フラグがセットされていた。"
2201 #: build/C/man3/mq_send.3:158
2203 "I<msg_len> was greater than the I<mq_msgsize> attribute of the message queue."
2204 msgstr "I<msg_len> がメッセージキューの I<mq_msgsize> 属性よりも大きかった。"
2207 #: build/C/man3/mq_send.3:169
2209 "On Linux, B<mq_timedsend>() is a system call, and B<mq_send>() is a "
2210 "library function layered on top of that system call."
2212 "Linux では、 B<mq_timedsend>() はシステムコールである。 B<mq_send>() はライ"
2213 "ブラリ関数で、 B<mq_timedsend>() システムコールを用いて実装されている。"
2216 #: build/C/man3/mq_send.3:178
2218 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2219 "B<mq_receive>(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2221 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2222 "B<mq_receive>(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2225 #: build/C/man3/mq_unlink.3:26
2231 #: build/C/man3/mq_unlink.3:29
2232 msgid "mq_unlink - remove a message queue"
2233 msgstr "mq_unlink - メッセージキューを削除する"
2236 #: build/C/man3/mq_unlink.3:34
2238 msgid "B<int mq_unlink(const char *>I<name>B<);>\n"
2239 msgstr "B<int mq_unlink(const char *>I<name>B<);>\n"
2242 #: build/C/man3/mq_unlink.3:44
2244 "B<mq_unlink>() removes the specified message queue I<name>. The message "
2245 "queue name is removed immediately. The queue itself is destroyed once any "
2246 "other processes that have the queue open close their descriptors referring "
2249 "B<mq_unlink>() は指定されたメッセージキュー I<name> を削除する。 メッセージ"
2250 "キュー名は直ちに削除される。 キュー自体は、そのキューをオープンした他のすべて"
2251 "のプロセスが そのキューを参照する記述子をクローズした時点で破棄される。"
2254 #: build/C/man3/mq_unlink.3:50
2256 "On success B<mq_unlink>() returns 0; on error, -1 is returned, with "
2257 "I<errno> set to indicate the error."
2259 "成功すると、 B<mq_unlink>() は 0 を返す。エラーの場合、-1 を返し、 I<errno> "
2263 #: build/C/man3/mq_unlink.3:54
2264 msgid "The caller does not have permission to unlink this message queue."
2266 "呼び出し元プロセスがこのメッセージキューを削除 (unlink) する 許可を持たない。"
2269 #: build/C/man3/mq_unlink.3:62
2270 msgid "There is no message queue with the given I<name>."
2271 msgstr "指定された名前 I<name> を持つメッセージキューが存在しない。"
2274 #: build/C/man3/mq_unlink.3:72
2276 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2277 "B<mq_receive>(3), B<mq_send>(3), B<mq_overview>(7)"
2279 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2280 "B<mq_receive>(3), B<mq_send>(3), B<mq_overview>(7)"
2283 #: build/C/man2/msgctl.2:37
2289 #: build/C/man2/msgctl.2:37
2295 #: build/C/man2/msgctl.2:40
2296 msgid "msgctl - System V message control operations"
2297 msgstr "msgctl - System V メッセージ制御操作"
2300 #: build/C/man2/msgctl.2:45 build/C/man2/msgget.2:43 build/C/man2/msgop.2:48
2303 "B<#include E<lt>sys/types.hE<gt>>\n"
2304 "B<#include E<lt>sys/ipc.hE<gt>>\n"
2305 "B<#include E<lt>sys/msg.hE<gt>>\n"
2307 "B<#include E<lt>sys/types.hE<gt>>\n"
2308 "B<#include E<lt>sys/ipc.hE<gt>>\n"
2309 "B<#include E<lt>sys/msg.hE<gt>>\n"
2312 #: build/C/man2/msgctl.2:47
2314 msgid "B<int msgctl(int >I<msqid>B<, int >I<cmd>B<, struct msqid_ds *>I<buf>B<);>\n"
2315 msgstr "B<int msgctl(int >I<msqid>B<, int >I<cmd>B<, struct msqid_ds *>I<buf>B<);>\n"
2318 #: build/C/man2/msgctl.2:54
2320 "B<msgctl>() performs the control operation specified by I<cmd> on the "
2321 "System V message queue with identifier I<msqid>."
2323 "B<msgctl>() はメッセージ・キュー識別子 I<msqid> で指定された System V メッ"
2324 "セージ・キュー (message queue) に対して I<cmd> で指定された制御操作を行なう。"
2327 #: build/C/man2/msgctl.2:58
2329 "The I<msqid_ds> data structure is defined in I<E<lt>sys/msg.hE<gt>> as "
2332 "I<msqid_ds> データ構造体は I<E<lt>sys/msg.hE<gt>> で以下のように定義されてい"
2336 #: build/C/man2/msgctl.2:75
2339 "struct msqid_ds {\n"
2340 " struct ipc_perm msg_perm; /* Ownership and permissions */\n"
2341 " time_t msg_stime; /* Time of last msgsnd(2) */\n"
2342 " time_t msg_rtime; /* Time of last msgrcv(2) */\n"
2343 " time_t msg_ctime; /* Time of last change */\n"
2344 " unsigned long __msg_cbytes; /* Current number of bytes in\n"
2345 " queue (nonstandard) */\n"
2346 " msgqnum_t msg_qnum; /* Current number of messages\n"
2348 " msglen_t msg_qbytes; /* Maximum number of bytes\n"
2349 " allowed in queue */\n"
2350 " pid_t msg_lspid; /* PID of last msgsnd(2) */\n"
2351 " pid_t msg_lrpid; /* PID of last msgrcv(2) */\n"
2354 "struct msqid_ds {\n"
2355 " struct ipc_perm msg_perm; /* 所有権と許可 */\n"
2356 " time_t msg_stime; /* 最後の msgsnd(2) の時刻 */\n"
2357 " time_t msg_rtime; /* 最後の msgrcv(2) の時刻 */\n"
2358 " time_t msg_ctime; /* 最後に変更が行われた時刻 */\n"
2359 " unsigned long __msg_cbytes; /* キューにある現在のバイト数\n"
2361 " msgqnum_t msg_qnum; /* キューにある現在入っている\n"
2363 " msglen_t msg_qbytes; /* キューに許可されている\n"
2365 " pid_t msg_lspid; /* 最後の msgsnd(2) の PID */\n"
2366 " pid_t msg_lrpid; /* 最後の msgrcv(2) の PID */\n"
2370 #: build/C/man2/msgctl.2:83
2372 "The I<ipc_perm> structure is defined as follows (the highlighted fields are "
2373 "settable using B<IPC_SET>):"
2375 "I<ipc_perm> 構造体は以下のように定義されている (強調されたフィールドは "
2376 "B<IPC_SET> を使って設定可能である):"
2379 #: build/C/man2/msgctl.2:95
2382 "struct ipc_perm {\n"
2383 " key_t __key; /* Key supplied to msgget(2) */\n"
2384 " uid_t B<uid>; /* Effective UID of owner */\n"
2385 " gid_t B<gid>; /* Effective GID of owner */\n"
2386 " uid_t cuid; /* Effective UID of creator */\n"
2387 " gid_t cgid; /* Effective GID of creator */\n"
2388 " unsigned short B<mode>; /* Permissions */\n"
2389 " unsigned short __seq; /* Sequence number */\n"
2392 "struct ipc_perm {\n"
2393 " key_t __key; /* msgget(2) に与えるキー */\n"
2394 " uid_t B<uid>; /* 所有者の実効 UID */\n"
2395 " gid_t B<gid>; /* 所有者の実効 GID */\n"
2396 " uid_t cuid; /* 作成者の実効 UID */\n"
2397 " gid_t cgid; /* 作成者の実効 GID */\n"
2398 " unsigned short B<mode>; /* 許可 */\n"
2399 " unsigned short __seq; /* シーケンス番号 */\n"
2403 #: build/C/man2/msgctl.2:101
2404 msgid "Valid values for I<cmd> are:"
2405 msgstr "I<cmd> として有効な値は:"
2408 #: build/C/man2/msgctl.2:101
2411 msgstr "B<IPC_STAT>"
2414 #: build/C/man2/msgctl.2:110
2416 "Copy information from the kernel data structure associated with I<msqid> "
2417 "into the I<msqid_ds> structure pointed to by I<buf>. The caller must have "
2418 "read permission on the message queue."
2420 "I<msqid> に関連づけられたメッセージ・キュー・データ構造体から、ポインタ "
2421 "I<buf> が指し示す I<msqid_ds> 構造体に情報をコピーする。 呼び出し側はメッセー"
2422 "ジ・キューに対する読み込み許可を持っていなければならない。"
2425 #: build/C/man2/msgctl.2:110
2431 #: build/C/man2/msgctl.2:137
2433 "Write the values of some members of the I<msqid_ds> structure pointed to by "
2434 "I<buf> to the kernel data structure associated with this message queue, "
2435 "updating also its I<msg_ctime> member. The following members of the "
2436 "structure are updated: I<msg_qbytes>, I<msg_perm.uid>, I<msg_perm.gid>, and "
2437 "(the least significant 9 bits of) I<msg_perm.mode>. The effective UID of "
2438 "the calling process must match the owner (I<msg_perm.uid>) or creator "
2439 "(I<msg_perm.cuid>) of the message queue, or the caller must be privileged. "
2440 "Appropriate privilege (Linux: the B<CAP_SYS_RESOURCE> capability) is "
2441 "required to raise the I<msg_qbytes> value beyond the system parameter "
2444 "ポインタ I<buf> が指し示す I<msqid_ds> 構造体のメンバーの値を、メッセージ・"
2445 "キューに関連づけられた カーネル・データ構造体に書き込み、 I<msg_ctime> メン"
2446 "バーも更新する。 構造体のメンバーのうち、更新されるものを以下に示す: "
2447 "I<msg_qbytes>, I<msg_perm.uid>, I<msg_perm.gid>, I<msg_perm.mode> (の下位 9 "
2448 "ビット)。 呼び出したプロセスの実効ユーザ ID が、メッセージ・キューの所有者 "
2449 "(I<msg_perm.uid>) または作成者 (I<msg_perm.cuid>) と一致するか、呼び出し元"
2450 "が特権を持たなければならない。 I<msg_qbytes> をシステム・パラメータの "
2451 "B<MSGMNB> を超えて設定するには、適切な特権 (Linux では B<CAP_SYS_RESOURCE> "
2452 "ケーパビリティ (capability)) が必要である。"
2455 #: build/C/man2/msgctl.2:137
2458 msgstr "B<IPC_RMID>"
2461 #: build/C/man2/msgctl.2:151
2463 "Immediately remove the message queue, awakening all waiting reader and "
2464 "writer processes (with an error return and I<errno> set to B<EIDRM>). The "
2465 "calling process must have appropriate privileges or its effective user ID "
2466 "must be either that of the creator or owner of the message queue. The third "
2467 "argument to B<msgctl>() is ignored in this case."
2469 "メッセージ・キューをただちに削除する。 同時にその構造体の読み書きの待ち状態に"
2470 "あったプロセスに通知する (エラーが返り、 I<errno> が B<EIDRM> に設定され"
2471 "る)。 呼び出したプロセスが適切な特権を持っているか、 呼び出したプロセスの実効"
2472 "ユーザ ID がメッセージ・キューの作成者か 所有者の実効ユーザ ID でなければなら"
2473 "ない。この場合、 B<msgctl>() の第 3 引き数は無視される。"
2476 #: build/C/man2/msgctl.2:151
2478 msgid "B<IPC_INFO> (Linux-specific)"
2479 msgstr "B<IPC_INFO> (Linux 固有)"
2482 #: build/C/man2/msgctl.2:164
2484 "Returns information about system-wide message queue limits and parameters in "
2485 "the structure pointed to by I<buf>. This structure is of type I<msginfo> "
2486 "(thus, a cast is required), defined in I<E<lt>sys/msg.hE<gt>> if the "
2487 "B<_GNU_SOURCE> feature test macro is defined:"
2489 "システム全体でのメッセージ・キューの制限とパラメータに関する情報を、 I<buf> "
2490 "が指す構造体に入れて返す。 この構造体は I<msginfo> 型である (そのためキャスト"
2491 "が必要である)。 I<msginfo> は B<_GNU_SOURCE> 機能検査マクロが定義された場合"
2492 "に I<E<lt>sys/msg.hE<gt>> で以下のように定義される:"
2495 #: build/C/man2/msgctl.2:188
2498 "struct msginfo {\n"
2499 " int msgpool; /* Size in kibibytes of buffer pool\n"
2500 " used to hold message data;\n"
2501 " unused within kernel */\n"
2502 " int msgmap; /* Maximum number of entries in message\n"
2503 " map; unused within kernel */\n"
2504 " int msgmax; /* Maximum number of bytes that can be\n"
2505 " written in a single message */\n"
2506 " int msgmnb; /* Maximum number of bytes that can be\n"
2507 " written to queue; used to initialize\n"
2508 " msg_qbytes during queue creation\n"
2510 " int msgmni; /* Maximum number of message queues */\n"
2511 " int msgssz; /* Message segment size;\n"
2512 " unused within kernel */\n"
2513 " int msgtql; /* Maximum number of messages on all queues\n"
2514 " in system; unused within kernel */\n"
2515 " unsigned short int msgseg;\n"
2516 " /* Maximum number of segments;\n"
2517 " unused within kernel */\n"
2520 "struct msginfo {\n"
2521 " int msgpool; /* メッセージ・データの保持に使用される\n"
2522 " バッファ・プールの大きさ (1024 バイト単位);\n"
2524 " int msgmap; /* メッセージ・マップの最大エントリ数;\n"
2526 " int msgmax; /* 一つのメッセージに書き込み可能な\n"
2528 " int msgmnb; /* 一つのキューに書き込み可能な最大バイト数;\n"
2529 " (msgget(2) での) キュー作成中の msg_qbytes\n"
2531 " int msgmni; /* メッセージ・キューの数の最大値 */\n"
2532 " int msgssz; /* メッセージ・セグメントのサイズ;\n"
2534 " int msgtql; /* システム上の全キューの最大メッセージ数;\n"
2536 " unsigned short int msgseg;\n"
2537 " /* 最大セグメント数; カーネル内では未使用 */\n"
2541 #: build/C/man2/msgctl.2:201
2543 "The I<msgmni>, I<msgmax>, and I<msgmnb> settings can be changed via I</proc> "
2544 "files of the same name; see B<proc>(5) for details."
2546 "設定 I<msgmni ,> I<msgmax ,> I<msgmnb> は I</proc> にある同じ名前のファイル経"
2547 "由で変更可能である。 詳しくは B<proc>(5) を参照。"
2550 #: build/C/man2/msgctl.2:201
2552 msgid "B<MSG_INFO> (Linux-specific)"
2553 msgstr "B<MSG_INFO> (Linux 固有)"
2556 #: build/C/man2/msgctl.2:218
2558 "Returns a I<msginfo> structure containing the same information as for "
2559 "B<IPC_INFO>, except that the following fields are returned with information "
2560 "about system resources consumed by message queues: the I<msgpool> field "
2561 "returns the number of message queues that currently exist on the system; the "
2562 "I<msgmap> field returns the total number of messages in all queues on the "
2563 "system; and the I<msgtql> field returns the total number of bytes in all "
2564 "messages in all queues on the system."
2566 "B<IPC_INFO> のときと同じ情報を格納した I<msginfo> 構造体を返す。 但し、以下の"
2567 "フィールドにはメッセージ・キューが 消費しているシステム資源に関する情報が格納"
2568 "される点が異なる。 I<msgpool> フィールドは現在システム上に存在するメッセー"
2569 "ジ・キューの数を返す。 I<msgmap> フィールドはシステム上の全てのキューに入って"
2570 "いるメッセージ総数を返す。 I<msgtql> フィールドはシステム上の全てのキューに"
2571 "入っている全メッセージの 総バイト数を返す。"
2574 #: build/C/man2/msgctl.2:218
2576 msgid "B<MSG_STAT> (Linux-specific)"
2577 msgstr "B<MSG_STAT> (Linux 固有)"
2580 #: build/C/man2/msgctl.2:229
2582 "Returns a I<msqid_ds> structure as for B<IPC_STAT>. However, the I<msqid> "
2583 "argument is not a queue identifier, but instead an index into the kernel's "
2584 "internal array that maintains information about all message queues on the "
2587 "B<IPC_STAT> と同じく I<msqid_ds> 構造体を返す。 但し、 I<msqid> 引き数は、"
2588 "キュー識別子ではなく、システム上の全てのメッセージ・キュー に関する情報を管理"
2589 "するカーネルの内部配列へのインデックスである。"
2592 #: build/C/man2/msgctl.2:250
2594 "On success, B<IPC_STAT>, B<IPC_SET>, and B<IPC_RMID> return 0. A successful "
2595 "B<IPC_INFO> or B<MSG_INFO> operation returns the index of the highest used "
2596 "entry in the kernel's internal array recording information about all message "
2597 "queues. (This information can be used with repeated B<MSG_STAT> operations "
2598 "to obtain information about all queues on the system.) A successful "
2599 "B<MSG_STAT> operation returns the identifier of the queue whose index was "
2600 "given in I<msqid>."
2602 "成功すると、 B<IPC_STAT>, B<IPC_SET>, B<IPC_RMID> は 0 を返す。 B<IPC_INFO> "
2603 "と B<MSG_INFO> 操作は、成功すると、全てのメッセージ・キューに関する情報を 管"
2604 "理しているカーネルの内部配列の使用中エントリのインデックスの うち最大値を返"
2605 "す (この情報は、システムの全てのメッセージ・キューに関する情報を 取得するため"
2606 "に、 B<MSG_STAT> 操作を繰り返し実行する際に使用できる)。 B<MSG_STAT> 操作は、"
2607 "成功すると、 I<msqid> で指定されたインデックスを持つメッセージ・キューの識別"
2611 #: build/C/man2/msgctl.2:254
2612 msgid "On error, -1 is returned with I<errno> indicating the error."
2613 msgstr "エラーの場合は -1 を返し、 I<errno> を適切に設定する。"
2616 #: build/C/man2/msgctl.2:258
2617 msgid "On failure, I<errno> is set to one of the following:"
2618 msgstr "失敗した場合、 I<errno> は以下の値の中のどれか一つに設定される:"
2621 #: build/C/man2/msgctl.2:271
2623 "The argument I<cmd> is equal to B<IPC_STAT> or B<MSG_STAT>, but the calling "
2624 "process does not have read permission on the message queue I<msqid>, and "
2625 "does not have the B<CAP_IPC_OWNER> capability."
2627 "引き数 I<cmd> が B<IPC_STAT> または B<MSG_STAT> に等しいが、呼び出したプロセ"
2628 "スがメッセージ・キュー I<msqid> に対する読み込み許可を持っておらず、かつ "
2629 "B<CAP_IPC_OWNER> ケーパビリティを持っていない。"
2632 #: build/C/man2/msgctl.2:271 build/C/man2/msgop.2:354 build/C/man2/msgop.2:407
2638 #: build/C/man2/msgctl.2:282
2640 "The argument I<cmd> has the value B<IPC_SET> or B<IPC_STAT>, but the address "
2641 "pointed to by I<buf> isn't accessible."
2643 "引き数 I<cmd> が B<IPC_SET> か B<IPC_STAT> で、ポインタ I<buf> で指されている"
2647 #: build/C/man2/msgctl.2:282 build/C/man2/msgop.2:359 build/C/man2/msgop.2:412
2653 #: build/C/man2/msgctl.2:285 build/C/man2/msgop.2:362
2654 msgid "The message queue was removed."
2655 msgstr "メッセージ・キューが削除された。"
2658 #: build/C/man2/msgctl.2:296
2660 "Invalid value for I<cmd> or I<msqid>. Or: for a B<MSG_STAT> operation, the "
2661 "index value specified in I<msqid> referred to an array slot that is "
2664 "I<cmd> または I<msqid> に不正な値が設定された。 もしくは、 B<MSG_STAT> 操作の"
2665 "場合に、 I<msqid> で指定されたインデックス値が現在未使用の配列のスロットを参"
2669 #: build/C/man2/msgctl.2:296 build/C/man2/msgctl.2:314
2675 #: build/C/man2/msgctl.2:314
2677 "The argument I<cmd> has the value B<IPC_SET> or B<IPC_RMID>, but the "
2678 "effective user ID of the calling process is not the creator (as found in "
2679 "I<msg_perm.cuid>) or the owner (as found in I<msg_perm.uid>) of the "
2680 "message queue, and the caller is not privileged (Linux: does not have the "
2681 "B<CAP_SYS_ADMIN> capability)."
2683 "引き数 I<cmd> が B<IPC_SET> か B<IPC_RMID> であるが、呼び出したプロセスの実効"
2684 "ユーザ ID がメッセージキューの (I<msg_perm.cuid> として見つかる) 作成者 と "
2685 "(I<msg_perm.uid> として見つかる) 所有者のいずれでもなく、 かつ呼び出し者に特"
2686 "権がない (Linux では B<CAP_SYS_ADMIN> ケーパビリティがない)。"
2689 #: build/C/man2/msgctl.2:325
2691 "An attempt (B<IPC_SET>) was made to increase I<msg_qbytes> beyond the "
2692 "system parameter B<MSGMNB>, but the caller is not privileged (Linux: does "
2693 "not have the B<CAP_SYS_RESOURCE> capability)."
2695 "B<IPC_SET> で I<msg_qbytes> をシステムパラメーター B<MSGMNB> より大きな値に設"
2696 "定しようとしたが、呼び出し元が特権を持っていなかった (Linux では、 "
2697 "B<CAP_SYS_RESOURCE> ケーパビリティを持っていなかった)。"
2700 #: build/C/man2/msgctl.2:328 build/C/man2/msgget.2:185
2701 #: build/C/man2/msgop.2:466
2702 msgid "SVr4, POSIX.1-2001."
2703 msgstr "SVr4, POSIX.1-2001."
2705 #. Like Linux, the FreeBSD man pages still document
2706 #. the inclusion of these header files.
2708 #: build/C/man2/msgctl.2:341 build/C/man2/msgget.2:198
2709 #: build/C/man2/msgop.2:489
2711 "The inclusion of I<E<lt>sys/types.hE<gt>> and I<E<lt>sys/ipc.hE<gt>> isn't "
2712 "required on Linux or by any version of POSIX. However, some old "
2713 "implementations required the inclusion of these header files, and the SVID "
2714 "also documented their inclusion. Applications intended to be portable to "
2715 "such old systems may need to include these header files."
2717 "Linux や POSIX の全てのバージョンでは、 I<E<lt>sys/types.hE<gt>> と "
2718 "I<E<lt>sys/ipc.hE<gt>> のインクルードは必要ない。しかしながら、いくつかの古い"
2719 "実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID でもこれらの"
2720 "インクルードをするように記載されている。このような古いシステムへの移植性を意"
2721 "図したアプリケーションではこれらのファイルをインクルードする必要があるかもし"
2725 #: build/C/man2/msgctl.2:353
2727 "The B<IPC_INFO>, B<MSG_STAT> and B<MSG_INFO> operations are used by the "
2728 "B<ipcs>(1) program to provide information on allocated resources. In the "
2729 "future these may modified or moved to a I</proc> filesystem interface."
2731 "B<IPC_INFO>, B<MSG_STAT>, B<MSG_INFO> 操作は、 B<ipcs>(1) プログラムで割り当"
2732 "て済の資源に関する情報を提供するために 使用されている。将来、これらの操作は変"
2733 "更されたり、 I</proc> ファイルシステムのインタフェースに移動されるかもしれな"
2737 #: build/C/man2/msgctl.2:367
2739 "Various fields in the I<struct msqid_ds> were typed as I<short> under Linux "
2740 "2.2 and have become I<long> under Linux 2.4. To take advantage of this, a "
2741 "recompilation under glibc-2.1.91 or later should suffice. (The kernel "
2742 "distinguishes old and new calls by an B<IPC_64> flag in I<cmd>.)"
2744 "I<struct msqid_ds> 内の多くのフィールドは、 Linux 2.2 では I<short> だった"
2745 "が、Linux 2.4 では I<long> になった。 この利点を生かすには、glibc-2.1.91 以降"
2746 "の環境下で 再コンパイルすれば十分である。 (カーネルは新しい形式の呼び出しと古"
2747 "い形式の呼び出しを I<cmd> 内の B<IPC_64> フラグで区別する。)"
2750 #: build/C/man2/msgctl.2:374
2752 "B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<capabilities>(7), B<mq_overview>"
2755 "B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<capabilities>(7), B<mq_overview>"
2759 #: build/C/man2/msgget.2:35
2765 #: build/C/man2/msgget.2:35
2771 #: build/C/man2/msgget.2:38
2772 msgid "msgget - get a System V message queue identifier"
2773 msgstr "msgget - System V メッセージ・キュー識別子を取得する"
2776 #: build/C/man2/msgget.2:45
2778 msgid "B<int msgget(key_t >I<key>B<, int >I<msgflg>B<);>\n"
2779 msgstr "B<int msgget(key_t >I<key>B<, int >I<msgflg>B<);>\n"
2782 #: build/C/man2/msgget.2:67
2784 "The B<msgget>() system call returns the System V message queue identifier "
2785 "associated with the value of the I<key> argument. A new message queue is "
2786 "created if I<key> has the value B<IPC_PRIVATE> or I<key> isn't "
2787 "B<IPC_PRIVATE>, no message queue with the given key I<key> exists, and "
2788 "B<IPC_CREAT> is specified in I<msgflg>."
2790 "B<msgget>() システムコールは I<key> 引き数の値に対応する System V メッセー"
2791 "ジ・キューの識別子を返す。 I<key> の値が B<IPC_PRIVATE> の場合、または "
2792 "I<key> が B<IPC_PRIVATE> でなくても、 I<key> に対応するメッセージ・キューが存"
2793 "在せず、 I<msgflg> に B<IPC_CREAT> が指定されている場合、 新しいメッセージ・"
2797 #: build/C/man2/msgget.2:86
2799 "If I<msgflg> specifies both B<IPC_CREAT> and B<IPC_EXCL> and a message queue "
2800 "already exists for I<key>, then B<msgget>() fails with I<errno> set to "
2801 "B<EEXIST>. (This is analogous to the effect of the combination B<O_CREAT | "
2802 "O_EXCL> for B<open>(2).)"
2804 "I<msgflg> に B<IPC_CREAT> と B<IPC_EXCL> の両方が指定された場合、 I<key> に対"
2805 "応するメッセージ・キューが既に存在すると、 B<msgget>() は失敗し、 I<errno> "
2806 "に B<EEXIST> が設定される。 (これは B<open>(2) に B<O_CREAT | O_EXCL> を指定"
2810 #: build/C/man2/msgget.2:96
2812 "Upon creation, the least significant bits of the argument I<msgflg> define "
2813 "the permissions of the message queue. These permission bits have the same "
2814 "format and semantics as the permissions specified for the I<mode> argument "
2815 "of B<open>(2). (The execute permissions are not used.)"
2817 "メッセージ・キューの作成時に、 I<msgflg> 引き数の下位 9 ビットは、 そのメッ"
2818 "セージ・キューのアクセス許可の定義として使用される。 これらの許可ビットは "
2819 "B<open>(2) の引き数 I<mode> と同じ形式で同じ意味である。 や B<creat>(2) シ"
2820 "ステム・コールのアクセス許可パラメータと同じ形式で、同じ意味を持つ。 (但し、"
2821 "実行 (execute) 許可は使用されない。)"
2824 #: build/C/man2/msgget.2:103
2826 "If a new message queue is created, then its associated data structure "
2827 "I<msqid_ds> (see B<msgctl>(2)) is initialized as follows:"
2829 "新規のメッセージ・キューを作成する際、 B<msgget>() システム・コールはメッ"
2830 "セージ・キューのデータ構造体 I<msqid_ds> を以下のように初期化する "
2831 "(I<msqid_ds> については B<msgctl>(2) を参照):"
2834 #: build/C/man2/msgget.2:108
2836 "I<msg_perm.cuid> and I<msg_perm.uid> are set to the effective user ID of the "
2839 "I<msg_perm.cuid> と I<msg_perm.uid> に呼び出し元プロセスの実効 (effective) "
2843 #: build/C/man2/msgget.2:113
2845 "I<msg_perm.cgid> and I<msg_perm.gid> are set to the effective group ID of "
2846 "the calling process."
2848 "I<msg_perm.cgid> と I<msg_perm.gid> に呼び出し元プロセスの実効 (effective) グ"
2852 #: build/C/man2/msgget.2:118
2854 "The least significant 9 bits of I<msg_perm.mode> are set to the least "
2855 "significant 9 bits of I<msgflg>."
2857 "I<msg_perm.mode> の下位 9 ビットは I<msgflg> の下位 9 ビットを設定する。"
2860 #: build/C/man2/msgget.2:126
2862 "I<msg_qnum>, I<msg_lspid>, I<msg_lrpid>, I<msg_stime>, and I<msg_rtime> are "
2865 "I<msg_qnum>, I<msg_lspid>, I<msg_lrpid>, I<msg_stime>, I<msg_rtime> に 0 を設"
2869 #: build/C/man2/msgget.2:129
2870 msgid "I<msg_ctime> is set to the current time."
2871 msgstr "I<msg_ctime> に現在の時刻を設定する。"
2874 #: build/C/man2/msgget.2:133
2875 msgid "I<msg_qbytes> is set to the system limit B<MSGMNB>."
2877 "I<msg_qbytes> に、システムで決められたメッセージ・キューの最大サイズ "
2881 #: build/C/man2/msgget.2:137
2883 "If the message queue already exists the permissions are verified, and a "
2884 "check is made to see if it is marked for destruction."
2886 "メッセージ・キューがすでに存在する場合は、アクセス許可の検査と、 破棄 "
2887 "(destruction) マークがないかの確認が行われる。"
2890 #: build/C/man2/msgget.2:143
2892 "If successful, the return value will be the message queue identifier (a "
2893 "nonnegative integer), otherwise -1 with I<errno> indicating the error."
2895 "成功した場合、返り値はメッセージ・キュー識別子 (非負の整数) となる。 失敗した"
2896 "場合は -1 が返され、 I<errno> にそのエラーが示される。"
2899 #: build/C/man2/msgget.2:147
2900 msgid "On failure, I<errno> is set to one of the following values:"
2901 msgstr "失敗した場合、 I<errno> に以下の値のいずれか一つが設定される:"
2904 #: build/C/man2/msgget.2:155
2906 "A message queue exists for I<key>, but the calling process does not have "
2907 "permission to access the queue, and does not have the B<CAP_IPC_OWNER> "
2910 "I<key> に対応するメッセージ・キューは存在するが、 呼び出し元プロセスはその"
2911 "キューに対するアクセス許可がなく、 B<CAP_IPC_OWNER> ケーパビリティも持ってい"
2915 #: build/C/man2/msgget.2:165
2917 "A message queue exists for I<key> and I<msgflg> specified both B<IPC_CREAT> "
2920 "I<key> に対応するメッセージ・キューが存在し、 I<msgflg> に B<IPC_CREAT> と "
2921 "B<IPC_EXCL> が指定されていた。"
2924 #: build/C/man2/msgget.2:173
2926 "No message queue exists for I<key> and I<msgflg> did not specify "
2929 "I<key> に対応するメッセージ・キューが存在せず、 I<msgflg> に B<IPC_CREAT> が"
2933 #: build/C/man2/msgget.2:177
2935 "A message queue has to be created but the system does not have enough memory "
2936 "for the new data structure."
2938 "メッセージ・キューを作成しようとしたが、新しいデータ構造体を作成 するのに十分"
2942 #: build/C/man2/msgget.2:183
2944 "A message queue has to be created but the system limit for the maximum "
2945 "number of message queues (B<MSGMNI>) would be exceeded."
2947 "メッセージ・キューを作成しようとしたが、作成すると システム全体のメッセージ・"
2948 "キュー数の最大値 (B<MSGMNI>) を超えてしまう。"
2951 #: build/C/man2/msgget.2:208
2953 "B<IPC_PRIVATE> isn't a flag field but a I<key_t> type. If this special "
2954 "value is used for I<key>, the system call ignores everything but the least "
2955 "significant 9 bits of I<msgflg> and creates a new message queue (on success)."
2957 "B<IPC_PRIVATE> はフラグではなく、 I<key_t> 型である。 この特別な値が I<key> "
2958 "として使用された場合、 B<msgget>() システムコールは I<msgflg> の下位 9 ビッ"
2959 "ト以外の全てを無視して (成功した場合は) 新しいメッセージ・キューを作成する。"
2962 #: build/C/man2/msgget.2:212
2964 "The following is a system limit on message queue resources affecting a "
2967 "B<msgget>() システムコールに影響を及ぼすメッセージ・キューの資源の システム"
2971 #: build/C/man2/msgget.2:212
2977 #: build/C/man2/msgget.2:218
2979 "System wide maximum number of message queues: policy dependent (on Linux, "
2980 "this limit can be read and modified via I</proc/sys/kernel/msgmni>)."
2982 "システム全体のメッセージ・キュー数の最大値: 方針依存 (Linux では、この制限値"
2983 "は I</proc/sys/kernel/msgmni> 経由で参照したり、変更したりできる)。"
2986 #: build/C/man2/msgget.2:218
2992 #: build/C/man2/msgget.2:224
2994 "Until version 2.3.20 Linux would return B<EIDRM> for a B<msgget>() on a "
2995 "message queue scheduled for deletion."
2997 "Linux 2.3.20 までは、削除が予定されているメッセージ・キューに対して B<msgget>"
2998 "() を行うと B<EIDRM> がエラーとして返されるようになっていた。"
3001 #: build/C/man2/msgget.2:230
3003 "The name choice B<IPC_PRIVATE> was perhaps unfortunate, B<IPC_NEW> would "
3004 "more clearly show its function."
3006 "B<IPC_PRIVATE> という名前を選んだのはおそらく失敗であろう。 B<IPC_NEW> の方が"
3007 "より明確にその機能を表しているだろう。"
3010 #: build/C/man2/msgget.2:238
3012 "B<msgctl>(2), B<msgrcv>(2), B<msgsnd>(2), B<ftok>(3), B<capabilities>(7), "
3013 "B<mq_overview>(7), B<svipc>(7)"
3015 "B<msgctl>(2), B<msgrcv>(2), B<msgsnd>(2), B<ftok>(3), B<capabilities>(7), "
3016 "B<mq_overview>(7), B<svipc>(7)"
3019 #: build/C/man2/msgop.2:40
3025 #: build/C/man2/msgop.2:40
3031 #: build/C/man2/msgop.2:43
3032 msgid "msgrcv, msgsnd - System V message queue operations"
3033 msgstr "msgrcv, msgsnd - System V メッセージキュー操作"
3036 #: build/C/man2/msgop.2:51
3038 msgid "B<int msgsnd(int >I<msqid>B<, const void *>I<msgp>B<, size_t >I<msgsz>B<, int >I<msgflg>B<);>\n"
3039 msgstr "B<int msgsnd(int >I<msqid>B<, const void *>I<msgp>B<, size_t >I<msgsz>B<, int >I<msgflg>B<);>\n"
3042 #: build/C/man2/msgop.2:55
3045 "B<ssize_t msgrcv(int >I<msqid>B<, void *>I<msgp>B<, size_t >I<msgsz>B<, long >I<msgtyp>B<,>\n"
3046 "B< int >I<msgflg>B<);>\n"
3048 "B<ssize_t msgrcv(int >I<msqid>B<, void *>I<msgp>B<, size_t >I<msgsz>B<, long >I<msgtyp>B<,>\n"
3049 "B< int >I<msgflg>B<);>\n"
3052 #: build/C/man2/msgop.2:65
3054 "The B<msgsnd>() and B<msgrcv>() system calls are used, respectively, to "
3055 "send messages to, and receive messages from, a System V message queue. The "
3056 "calling process must have write permission on the message queue in order to "
3057 "send a message, and read permission to receive a message."
3059 "システムコール B<msgsnd>() と B<msgrcv>() はそれぞれ、 System V メッセー"
3060 "ジ・キューへのメッセージの送信と、 メッセージの受信に使用される。呼び出し元プ"
3061 "ロセスは、 メッセージを送信するためにはメッセージ・キューに対する書き込み許可"
3062 "を、 メッセージを受信するためには読み出し許可を持っていなければならない。"
3065 #: build/C/man2/msgop.2:70
3067 "The I<msgp> argument is a pointer to a caller-defined structure of the "
3068 "following general form:"
3070 "呼び出し元プロセスは以下に示す構造体を用意し、この構造体への ポインタを "
3074 #: build/C/man2/msgop.2:77
3078 " long mtype; /* message type, must be E<gt> 0 */\n"
3079 " char mtext[1]; /* message data */\n"
3083 " long mtype; /* message type, must be E<gt> 0 */\n"
3084 " char mtext[1]; /* message data */\n"
3088 #: build/C/man2/msgop.2:96
3090 "The I<mtext> field is an array (or other structure) whose size is specified "
3091 "by I<msgsz>, a nonnegative integer value. Messages of zero length (i.e., no "
3092 "I<mtext> field) are permitted. The I<mtype> field must have a strictly "
3093 "positive integer value. This value can be used by the receiving process for "
3094 "message selection (see the description of B<msgrcv>() below)."
3096 "I<mtext> フィールドは配列 (または他の構造体) で、その大きさは 非負の整数であ"
3097 "る I<msgsz> で指定される。 長さ 0 のメッセージ (つまり I<mtext> フィールドが"
3098 "ないメッセージ) も認められている。 B<mtype> フィールドは厳密に正の整数でなけ"
3099 "ればならない。 この値は、メッセージを受信するプロセスでメッセージを選択するた"
3100 "めに 使用される (下記の B<msgrcv>() の説明を参照のこと)。"
3103 #: build/C/man2/msgop.2:96
3109 #: build/C/man2/msgop.2:104
3111 "The B<msgsnd>() system call appends a copy of the message pointed to by "
3112 "I<msgp> to the message queue whose identifier is specified by I<msqid>."
3114 "B<msgsnd>() システムコールは I<msgp> 引き数で指定されたメッセージのコピーを "
3115 "I<msqid> で指定された識別子を持つメッセージ・キューへ追加する。"
3118 #: build/C/man2/msgop.2:125
3120 "If sufficient space is available in the queue, B<msgsnd>() succeeds "
3121 "immediately. (The queue capacity is defined by the I<msg_qbytes> field in "
3122 "the associated data structure for the message queue. During queue creation "
3123 "this field is initialized to B<MSGMNB> bytes, but this limit can be modified "
3124 "using B<msgctl>(2).) If insufficient space is available in the queue, then "
3125 "the default behavior of B<msgsnd>() is to block until space becomes "
3126 "available. If B<IPC_NOWAIT> is specified in I<msgflg>, then the call "
3127 "instead fails with the error B<EAGAIN>."
3129 "キューに十分な空き容量がある場合、 B<msgsnd>() は直ちに成功する。 (キューの"
3130 "容量は、メッセージ・キューのデータ構造体の I<msg_qbytes> フィールドで定義され"
3131 "る。 キュー作成時にこのフィールドは B<MSGMNB> に初期化されるが、この制限は "
3132 "B<msgctl>(2) を使って変更できる。) キューに十分な空き容量がない場合、 デ"
3133 "フォルトでは B<msgsnd>() は空き容量ができるまで停止 (block) する。 "
3134 "I<msgflg> に B<IPC_NOWAIT> が指定された場合は、エラー B<EAGAIN> で失敗する。"
3137 #: build/C/man2/msgop.2:129
3138 msgid "A blocked B<msgsnd>() call may also fail if:"
3139 msgstr "停止している B<msgsnd>() は以下の場合にも失敗する。"
3142 #: build/C/man2/msgop.2:129 build/C/man2/msgop.2:136 build/C/man2/msgop.2:203
3143 #: build/C/man2/msgop.2:208 build/C/man2/msgop.2:222 build/C/man2/msgop.2:290
3144 #: build/C/man2/msgop.2:292 build/C/man2/msgop.2:298
3150 #: build/C/man2/msgop.2:136
3152 "the queue is removed, in which case the system call fails with I<errno> set "
3154 msgstr "キューが削除された。 この場合、 I<errno> は B<EIDRM> に設定される。"
3157 #: build/C/man2/msgop.2:148
3159 "a signal is caught, in which case the system call fails with I<errno> set to "
3160 "B<EINTR>;B<see> B<signal>(7). (B<msgsnd>() is never automatically "
3161 "restarted after being interrupted by a signal handler, regardless of the "
3162 "setting of the B<SA_RESTART> flag when establishing a signal handler.)"
3164 "シグナルが捕捉された。 この場合、 I<errno> は B<EINTR> に設定される。 "
3165 "B<signal>(7) 参照。 (B<msgsnd>() は、たとえシグナルハンドラの設定時に "
3166 "B<SA_RESTART> を指定していたとしても、シグナルハンドラによって割り込まれた後"
3167 "で 自動的に再スタートすることは決してない。)"
3170 #: build/C/man2/msgop.2:151 build/C/man2/msgop.2:312
3172 "Upon successful completion the message queue data structure is updated as "
3175 "正常に終了した場合、メッセージ・キューのデータ構造体は以下のように 更新され"
3179 #: build/C/man2/msgop.2:154
3180 msgid "I<msg_lspid> is set to the process ID of the calling process."
3181 msgstr "I<msg_lspid> には呼び出し元プロセスのプロセス ID が設定される。"
3184 #: build/C/man2/msgop.2:157
3185 msgid "I<msg_qnum> is incremented by 1."
3186 msgstr "I<msg_qnum> は 1 増加する。"
3189 #: build/C/man2/msgop.2:160
3190 msgid "I<msg_stime> is set to the current time."
3191 msgstr "I<msg_stime> には現在時刻が設定される。"
3194 #: build/C/man2/msgop.2:160
3200 #: build/C/man2/msgop.2:168
3202 "The B<msgrcv>() system call removes a message from the queue specified by "
3203 "I<msqid> and places it in the buffer pointed to by I<msgp>."
3205 "B<msgrcv>() システムコールは I<msqid> で指定されたキューからメッセージを削除"
3206 "し、 I<msgp> で指定されたバッファにそのメッセージを格納する。"
3209 #: build/C/man2/msgop.2:194
3211 "The argument I<msgsz> specifies the maximum size in bytes for the member "
3212 "I<mtext> of the structure pointed to by the I<msgp> argument. If the "
3213 "message text has length greater than I<msgsz>, then the behavior depends on "
3214 "whether B<MSG_NOERROR> is specified in I<msgflg>. If B<MSG_NOERROR> is "
3215 "specified, then the message text will be truncated (and the truncated part "
3216 "will be lost); if B<MSG_NOERROR> is not specified, then the message isn't "
3217 "removed from the queue and the system call fails returning -1 with I<errno> "
3220 "I<msgsz> 引き数には I<msgp> 引き数で指定された構造体の I<mtext> メンバーの最"
3221 "大のバイト数を指定する。 メッセージのテキストの長さが I<msgsz> より大きい場合"
3222 "の動作は、 I<msgflg> に B<MSG_NOERROR> が指定されているかどうかで決まる。 "
3223 "B<MSG_NOERROR> が指定されていれば、メッセージのテキストは切り詰められる (切り"
3224 "捨てられた部分は失われる)。 B<MSG_NOERROR> が指定されていなければ、メッセージ"
3225 "はキューから削除されず、 システムコールは -1 を返して失敗し、 I<errno> に "
3229 #: build/C/man2/msgop.2:203
3232 #| "The argument I<msgtyp> specifies the type of message requested as follows:"
3234 "Unless B<MSG_COPY> is specified in I<msgflg> (see below), the I<msgtyp> "
3235 "argument specifies the type of message requested, as follows:"
3237 "I<msgtyp> 引き数には要求するメッセージの型を指定する。 型は以下のように指定す"
3241 #: build/C/man2/msgop.2:208
3242 msgid "If I<msgtyp> is 0, then the first message in the queue is read."
3243 msgstr "I<msgtyp> が 0 ならば、キューの最初にあるメッセージが読み込まれる。"
3246 #: build/C/man2/msgop.2:222
3248 "If I<msgtyp> is greater than 0, then the first message in the queue of type "
3249 "I<msgtyp> is read, unless B<MSG_EXCEPT> was specified in I<msgflg>, in which "
3250 "case the first message in the queue of type not equal to I<msgtyp> will be "
3253 "I<msgtyp> が 0 より大きい場合、 I<msgflg> に B<MSG_EXCEPT> が指定されていなけ"
3254 "れば、 I<msgtyp> 型のキューの最初のメッセージが読み込まれる。 B<MSG_EXCEPT> "
3255 "が指定された場合は、 I<msgtyp> 型以外のキューの最初のメッセージが読み込まれ"
3259 #: build/C/man2/msgop.2:230
3261 "If I<msgtyp> is less than 0, then the first message in the queue with the "
3262 "lowest type less than or equal to the absolute value of I<msgtyp> will be "
3265 "I<msgtyp> が 0 より小さければ、 I<msgtyp> の絶対値以下で最も小さい型を持つ"
3266 "キューの最初のメッセージが読み込まれる。"
3269 #: build/C/man2/msgop.2:235
3271 "The I<msgflg> argument is a bit mask constructed by ORing together zero or "
3272 "more of the following flags:"
3274 "I<msgflg> 引き数には、以下のフラグを任意の数だけ (0個も可)、これらの OR で指"
3278 #: build/C/man2/msgop.2:235
3280 msgid "B<IPC_NOWAIT>"
3281 msgstr "B<IPC_NOWAIT>"
3284 #: build/C/man2/msgop.2:242
3286 "Return immediately if no message of the requested type is in the queue. The "
3287 "system call fails with I<errno> set to B<ENOMSG>."
3289 "キューに要求された型のメッセージがない場合には直ちに返る。 システムコールは失"
3290 "敗し、 I<errno> には B<ENOMSG> が設定される。"
3293 #: build/C/man2/msgop.2:242
3295 msgid "B<MSG_COPY> (since Linux 3.8)"
3296 msgstr "B<MSG_COPY> (Linux 3.8 以降)"
3298 #. commit 4a674f34ba04a002244edaf891b5da7fc1473ae8
3300 #: build/C/man2/msgop.2:249
3302 "Nondestructively fetch a copy of the message at the ordinal position in the "
3303 "queue specified by I<msgtyp> (messages are considered to be numbered "
3308 #: build/C/man2/msgop.2:263
3310 "This flag must be specified in conjunction with B<IPC_NOWAIT>, with the "
3311 "result that, if there is no message available at the given position, the "
3312 "call fails immediately with the error B<ENOMSG>. Because they alter the "
3313 "meaning of I<msgtyp> in orthogonal ways, B<MSG_COPY> and B<MSG_EXCEPT> may "
3314 "not both be specified in I<msgflg>."
3318 #: build/C/man2/msgop.2:271
3320 "The B<MSG_COPY> flag was added for the implementation of the kernel "
3321 "checkpoint-restore facility and is available only if the kernel was built "
3322 "with the B<CONFIG_CHECKPOINT_RESTORE> option."
3326 #: build/C/man2/msgop.2:271
3328 msgid "B<MSG_EXCEPT>"
3329 msgstr "B<MSG_EXCEPT>"
3332 #: build/C/man2/msgop.2:279
3334 "Used with I<msgtyp> greater than 0 to read the first message in the queue "
3335 "with message type that differs from I<msgtyp>."
3337 "0 より大きな I<msgtyp> と一緒に使用して、 I<msgtyp> 以外のキューの最初のメッ"
3341 #: build/C/man2/msgop.2:279
3343 msgid "B<MSG_NOERROR>"
3344 msgstr "B<MSG_NOERROR>"
3347 #: build/C/man2/msgop.2:284
3348 msgid "To truncate the message text if longer than I<msgsz> bytes."
3349 msgstr "I<msgsz> バイトよりも長かった場合はメッセージのテキストを切り詰める。"
3352 #: build/C/man2/msgop.2:290
3354 "If no message of the requested type is available and B<IPC_NOWAIT> isn't "
3355 "specified in I<msgflg>, the calling process is blocked until one of the "
3356 "following conditions occurs:"
3358 "要求された型のメッセージが存在せず、 I<msgflg> に B<IPC_NOWAIT> が指定されて"
3359 "いなかった場合、呼び出し元プロセスは 以下のいずれかの状況になるまで停止 "
3363 #: build/C/man2/msgop.2:292
3364 msgid "A message of the desired type is placed in the queue."
3365 msgstr "要求している型のメッセージがキューへ入れられた。"
3368 #: build/C/man2/msgop.2:298
3371 #| "The message queue is removed from the system. In this case the system "
3372 #| "call fails with I<errno> set to B<EIDRM>."
3374 "The message queue is removed from the system. In this case, the system call "
3375 "fails with I<errno> set to B<EIDRM>."
3377 "メッセージ・キューがシステムから削除された。 この場合、システムコールは失敗"
3378 "し、 I<errno> に B<EIDRM> が設定される。"
3381 #: build/C/man2/msgop.2:309
3384 #| "The calling process catches a signal. In this case the system call fails "
3385 #| "with I<errno> set to B<EINTR>. (B<msgrcv>() is never automatically "
3386 #| "restarted after being interrupted by a signal handler, regardless of the "
3387 #| "setting of the B<SA_RESTART> flag when establishing a signal handler.)"
3389 "The calling process catches a signal. In this case, the system call fails "
3390 "with I<errno> set to B<EINTR>. (B<msgrcv>() is never automatically "
3391 "restarted after being interrupted by a signal handler, regardless of the "
3392 "setting of the B<SA_RESTART> flag when establishing a signal handler.)"
3394 "呼び出し元プロセスがシグナルを捕獲した。 この場合、システムコールは失敗し、 "
3395 "I<errno> に B<EINTR> が設定される。 (B<msgrcv>() は、たとえシグナルハンドラ"
3396 "の設定時に B<SA_RESTART> を指定していたとしても、シグナルハンドラによって割り"
3397 "込まれた後で 自動的に再スタートすることは決してない。)"
3400 #: build/C/man2/msgop.2:315
3401 msgid "I<msg_lrpid> is set to the process ID of the calling process."
3402 msgstr "I<msg_lrpid> には呼び出し元プロセスのプロセス ID が設定される。"
3405 #: build/C/man2/msgop.2:318
3406 msgid "I<msg_qnum> is decremented by 1."
3407 msgstr "I<msg_qnum> は 1 減算される。"
3410 #: build/C/man2/msgop.2:321
3411 msgid "I<msg_rtime> is set to the current time."
3412 msgstr "I<msg_rtime> には現在の時刻が設定される。"
3415 #: build/C/man2/msgop.2:334
3417 "On failure both functions return -1 with I<errno> indicating the error, "
3418 "otherwise B<msgsnd>() returns 0 and B<msgrcv>() returns the number of "
3419 "bytes actually copied into the I<mtext> array."
3421 "失敗した場合は、どちらの関数も -1 を返し、エラーを I<errno> に表示する。成功"
3422 "した場合、 B<msgsnd>() は 0 を返し、 B<msgrcv>() は I<mtext> 配列に実際にコ"
3426 #: build/C/man2/msgop.2:340
3428 "When B<msgsnd>() fails, I<errno> will be set to one among the following "
3431 "B<msgsnd>() が失敗した場合、 B<errno> に以下の値のいずれかが設定される:"
3434 #: build/C/man2/msgop.2:346
3436 "The calling process does not have write permission on the message queue, and "
3437 "does not have the B<CAP_IPC_OWNER> capability."
3439 "呼び出し元プロセスにはメッセージ・キューに対する書き込み許可がなく、 "
3440 "B<CAP_IPC_OWNER> ケーパビリティもない。"
3443 #: build/C/man2/msgop.2:354
3445 "The message can't be sent due to the I<msg_qbytes> limit for the queue and "
3446 "B<IPC_NOWAIT> was specified in I<msgflg>."
3448 "I<msg_qbytes> がキューの制限を超えていたため、メッセージを送ることができず、"
3449 "かつ I<msgflg> に B<IPC_NOWAIT> が指定されていた。"
3452 #: build/C/man2/msgop.2:359 build/C/man2/msgop.2:412
3453 msgid "The address pointed to by I<msgp> isn't accessible."
3454 msgstr "I<msgp> が指しているアドレスがアクセス可能でない。"
3457 #: build/C/man2/msgop.2:365
3459 "Sleeping on a full message queue condition, the process caught a signal."
3461 "メッセージ・キューが要求した条件を満たすまで停止している時に、 プロセスがシグ"
3465 #: build/C/man2/msgop.2:376
3467 "Invalid I<msqid> value, or nonpositive I<mtype> value, or invalid I<msgsz> "
3468 "value (less than 0 or greater than the system value B<MSGMAX>)."
3470 "I<msqid> が不適切な値であるか、 I<mtype> が正の値でないか、 I<msgsz> が不適切"
3471 "な値 (0 以下か、システムで決まる値 B<MSGMAX> よりも大きい値) である。"
3474 #: build/C/man2/msgop.2:381
3476 "The system does not have enough memory to make a copy of the message pointed "
3479 "I<msgp> が指すメッセージのコピーを作成するのに十分なメモリがシステムに存在し"
3483 #: build/C/man2/msgop.2:387
3485 "When B<msgrcv>() fails, I<errno> will be set to one among the following "
3488 "B<msgrcv>() が失敗した場合には I<errno> に以下の値のいずれかが設定される:"
3491 #: build/C/man2/msgop.2:387
3497 #: build/C/man2/msgop.2:395
3499 "The message text length is greater than I<msgsz> and B<MSG_NOERROR> isn't "
3500 "specified in I<msgflg>."
3502 "メッセージのテキストの長さが I<msgsz> よりも大きく、 I<msgflg> に "
3503 "B<MSG_NOERROR> が設定されていなかった。"
3506 #: build/C/man2/msgop.2:401
3508 "The calling process does not have read permission on the message queue, and "
3509 "does not have the B<CAP_IPC_OWNER> capability."
3511 "呼び出し元プロセスにはメッセージ・キューに対する読み込み許可がなく、 "
3512 "B<CAP_IPC_OWNER> ケーパビリティもない。"
3515 #: build/C/man2/msgop.2:407
3517 "No message was available in the queue and B<IPC_NOWAIT> was specified in "
3519 msgstr "キューにはメッセージがなく、 I<msgflg> に B<IPC_NOWAIT> が指定された。"
3522 #: build/C/man2/msgop.2:416
3524 "While the process was sleeping to receive a message, the message queue was "
3527 "メッセージを受信するためにプロセスが停止している間に、 メッセージ・キューが削"
3531 #: build/C/man2/msgop.2:421
3533 "While the process was sleeping to receive a message, the process caught a "
3534 "signal; see B<signal>(7)."
3536 "メッセージを受けるためにプロセスが停止している間に、 プロセスがシグナルを捕獲"
3537 "した。 B<signal>(7) 参照。"
3540 #: build/C/man2/msgop.2:427
3541 msgid "I<msgqid> was invalid, or I<msgsz> was less than 0."
3542 msgstr "I<msgqid> が不正か、 I<msgsz> が 0 より小さい。"
3545 #: build/C/man2/msgop.2:427 build/C/man2/msgop.2:434
3547 msgid "B<EINVAL> (since Linux 3.14)"
3548 msgstr "B<EINVAL> (Linux 3.14 以降)"
3551 #: build/C/man2/msgop.2:434
3552 msgid "I<msgflg> specified B<MSG_COPY>, but not B<IPC_NOWAIT>."
3556 #: build/C/man2/msgop.2:441
3557 msgid "I<msgflg> specified both B<MSG_COPY> and B<MSG_EXCEPT>."
3561 #: build/C/man2/msgop.2:441 build/C/man2/msgop.2:447
3567 #: build/C/man2/msgop.2:447
3569 "B<IPC_NOWAIT> was specified in I<msgflg> and no message of the requested "
3570 "type existed on the message queue."
3572 "I<msgflg> に B<IPC_NOWAIT> が設定されており、 メッセージ・キューに要求された"
3576 #: build/C/man2/msgop.2:457
3579 #| "B<IPC_NOWAIT> was specified in I<msgflg> and no message of the requested "
3580 #| "type existed on the message queue."
3582 "B<IPC_NOWAIT> and B<MSG_COPY> were specified in I<msgflg> and the queue "
3583 "contains less than I<msgtyp> messages."
3585 "I<msgflg> に B<IPC_NOWAIT> が設定されており、 メッセージ・キューに要求された"
3589 #: build/C/man2/msgop.2:457
3591 msgid "B<ENOSYS> (since Linux 3.8)"
3592 msgstr "B<ENOSYS> (Linux 3.8 以降)"
3595 #: build/C/man2/msgop.2:464
3597 "I<MSG_COPY> was specified in I<msgflg>, and this kernel was configured "
3598 "without B<CONFIG_CHECKPOINT_RESTORE>."
3601 #. MSG_COPY since glibc 2.18
3603 #: build/C/man2/msgop.2:476
3605 "The B<MSG_EXCEPT> and B<MSG_COPY> flags are Linux-specific; their "
3606 "definitions can be obtained by defining the B<_GNU_SOURCE> feature test "
3611 #: build/C/man2/msgop.2:496
3613 "The I<msgp> argument is declared as I<struct msgbuf *> with libc4, libc5, "
3614 "glibc 2.0, glibc 2.1. It is declared as I<void *> with glibc 2.2 and later, "
3615 "as required by SUSv2 and SUSv3."
3617 "I<msgp> 引き数は、 libc4, libc5, glibc 2.0, glibc 2.1 では I<struct msgbuf "
3618 "*> と宣言されている。glibc 2.2 以降では、 SUSv2 と SUSv3 の要求通り、I<void "
3622 #: build/C/man2/msgop.2:500
3624 "The following limits on message queue resources affect the B<msgsnd>() call:"
3625 msgstr "以下は B<msgsnd> システムコールに影響するシステム制限である:"
3628 #: build/C/man2/msgop.2:500
3634 #: build/C/man2/msgop.2:505
3636 "Maximum size for a message text: 8192 bytes (on Linux, this limit can be "
3637 "read and modified via I</proc/sys/kernel/msgmax>)."
3639 "メッセージのテキストの最大サイズ: 8192 バイト (Linux では、この制限値は I</"
3640 "proc/sys/kernel/msgmax> 経由で読み出したり変更したりできる)。"
3643 #: build/C/man2/msgop.2:505
3649 #: build/C/man2/msgop.2:515
3651 "Default maximum size in bytes of a message queue: 16384 bytes (on Linux, "
3652 "this limit can be read and modified via I</proc/sys/kernel/msgmnb>). The "
3653 "superuser can increase the size of a message queue beyond B<MSGMNB> by a "
3654 "B<msgctl>(2) system call."
3656 "バイト単位でのメッセージ・キューのデフォルトの最大サイズ : 16384 バイト。 "
3657 "(Linux では、この制限値は I</proc/sys/kernel/msgmnb> 経由で読み出したり変更し"
3658 "たりできる)。 スーパーユーザーは B<msgctl>(2) システムコールでメッセージ・"
3659 "キューのサイズを B<MSGMNB> よりも大きい値に増やすことができる。"
3662 #: build/C/man2/msgop.2:521
3664 "The implementation has no intrinsic limits for the system wide maximum "
3665 "number of message headers (B<MSGTQL>) and for the system wide maximum size "
3666 "in bytes of the message pool (B<MSGPOOL>)."
3668 "現在の実装では、システム全体のメッセージ・ヘッダーの最大数 (B<MSGTQL>) と、"
3669 "システム全体のメッセージ・プールの最大バイト数 (B<MSGPOOL>) に関して実装依存"
3672 #. FIXME http://marc.info/?l=linux-kernel&m=139048542803605&w=2
3673 #. commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c
3675 #: build/C/man2/msgop.2:541
3677 "In Linux 3.13 and earlier, if B<msgrcv>() was called with the B<MSG_COPY> "
3678 "flag, but without B<IPC_NOWAIT>, and the message queue contained less than "
3679 "I<msgtyp> messages, then the call would block until the next message is "
3680 "written to the queue. At that point, the call would return a copy of the "
3681 "message, I<regardless> of whether that message was at the ordinal position "
3682 "I<msgtyp>. This bug is fixed in Linux 3.14."
3685 #. FIXME http://marc.info/?l=linux-kernel&m=139048542803605&w=2
3686 #. commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c
3688 #: build/C/man2/msgop.2:557
3690 "Specifying both B<MSG_COPY> and B<MSC_EXCEPT> in I<msgflg> is a logical "
3691 "error (since these flags impose different interpretations on I<msgtyp>). In "
3692 "Linux 3.13 and earlier, this error was not diagnosed by B<msgrcv>(). This "
3693 "bug is fixed in Linux 3.14."
3697 #: build/C/man2/msgop.2:563
3699 "B<msgctl>(2), B<msgget>(2), B<capabilities>(7), B<mq_overview>(7), B<svipc>"
3702 "B<msgctl>(2), B<msgget>(2), B<capabilities>(7), B<mq_overview>(7), B<svipc>"