OSDN Git Service

LDP: Update POT and ja.po to LDP v3.79
[linuxjm/LDP_man-pages.git] / po4a / mqueue / po / ja.po
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.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2015-02-04 23:30+0900\n"
10 "PO-Revision-Date: 2015-01-25 07:20+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/mq_close.3:26
20 #, no-wrap
21 msgid "MQ_CLOSE"
22 msgstr "MQ_CLOSE"
23
24 #. type: TH
25 #: build/C/man3/mq_close.3:26 build/C/man3/mq_unlink.3:26
26 #, no-wrap
27 msgid "2014-06-13"
28 msgstr "2014-06-13"
29
30 #. type: TH
31 #: build/C/man3/mq_close.3:26 build/C/man3/mq_getattr.3:26
32 #: build/C/man2/mq_getsetattr.2:26 build/C/man3/mq_notify.3:26
33 #: build/C/man3/mq_open.3:26 build/C/man7/mq_overview.7:26
34 #: build/C/man3/mq_receive.3:26 build/C/man3/mq_send.3:26
35 #: build/C/man3/mq_unlink.3:26 build/C/man2/msgctl.2:37
36 #: build/C/man2/msgget.2:35 build/C/man2/msgop.2:41
37 #, no-wrap
38 msgid "Linux"
39 msgstr "Linux"
40
41 #. type: TH
42 #: build/C/man3/mq_close.3:26 build/C/man3/mq_getattr.3:26
43 #: build/C/man2/mq_getsetattr.2:26 build/C/man3/mq_notify.3:26
44 #: build/C/man3/mq_open.3:26 build/C/man7/mq_overview.7:26
45 #: build/C/man3/mq_receive.3:26 build/C/man3/mq_send.3:26
46 #: build/C/man3/mq_unlink.3:26 build/C/man2/msgctl.2:37
47 #: build/C/man2/msgget.2:35 build/C/man2/msgop.2:41
48 #, no-wrap
49 msgid "Linux Programmer's Manual"
50 msgstr "Linux Programmer's Manual"
51
52 #. type: SH
53 #: build/C/man3/mq_close.3:27 build/C/man3/mq_getattr.3:27
54 #: build/C/man2/mq_getsetattr.2:27 build/C/man3/mq_notify.3:27
55 #: build/C/man3/mq_open.3:27 build/C/man7/mq_overview.7:27
56 #: build/C/man3/mq_receive.3:27 build/C/man3/mq_send.3:27
57 #: build/C/man3/mq_unlink.3:27 build/C/man2/msgctl.2:38
58 #: build/C/man2/msgget.2:36 build/C/man2/msgop.2:42
59 #, no-wrap
60 msgid "NAME"
61 msgstr "名前"
62
63 #. type: Plain text
64 #: build/C/man3/mq_close.3:29
65 msgid "mq_close - close a message queue descriptor"
66 msgstr "mq_close - メッセージキュー記述子をクローズする"
67
68 #. type: SH
69 #: build/C/man3/mq_close.3:29 build/C/man3/mq_getattr.3:29
70 #: build/C/man2/mq_getsetattr.2:29 build/C/man3/mq_notify.3:29
71 #: build/C/man3/mq_open.3:29 build/C/man3/mq_receive.3:29
72 #: build/C/man3/mq_send.3:29 build/C/man3/mq_unlink.3:29
73 #: build/C/man2/msgctl.2:40 build/C/man2/msgget.2:38 build/C/man2/msgop.2:44
74 #, no-wrap
75 msgid "SYNOPSIS"
76 msgstr "書式"
77
78 #. type: Plain text
79 #: build/C/man3/mq_close.3:32 build/C/man3/mq_getattr.3:32
80 #: build/C/man3/mq_notify.3:32 build/C/man3/mq_receive.3:32
81 #: build/C/man3/mq_send.3:32 build/C/man3/mq_unlink.3:32
82 #, no-wrap
83 msgid "B<#include E<lt>mqueue.hE<gt>>\n"
84 msgstr "B<#include E<lt>mqueue.hE<gt>>\n"
85
86 #. type: Plain text
87 #: build/C/man3/mq_close.3:34
88 #, no-wrap
89 msgid "B<int mq_close(mqd_t >I<mqdes>B<);>\n"
90 msgstr "B<int mq_close(mqd_t >I<mqdes>B<);>\n"
91
92 #. type: Plain text
93 #: build/C/man3/mq_close.3:37 build/C/man3/mq_getattr.3:40
94 #: build/C/man3/mq_notify.3:37 build/C/man3/mq_open.3:41
95 #: build/C/man3/mq_receive.3:45 build/C/man3/mq_send.3:45
96 #: build/C/man3/mq_unlink.3:37
97 msgid "Link with I<-lrt>."
98 msgstr "I<-lrt> でリンクする。"
99
100 #. type: SH
101 #: build/C/man3/mq_close.3:37 build/C/man3/mq_getattr.3:40
102 #: build/C/man2/mq_getsetattr.2:40 build/C/man3/mq_notify.3:37
103 #: build/C/man3/mq_open.3:41 build/C/man7/mq_overview.7:29
104 #: build/C/man3/mq_receive.3:57 build/C/man3/mq_send.3:57
105 #: build/C/man3/mq_unlink.3:37 build/C/man2/msgctl.2:48
106 #: build/C/man2/msgget.2:46 build/C/man2/msgop.2:57
107 #, no-wrap
108 msgid "DESCRIPTION"
109 msgstr "説明"
110
111 #. type: Plain text
112 #: build/C/man3/mq_close.3:41
113 msgid "B<mq_close>()  closes the message queue descriptor I<mqdes>."
114 msgstr ""
115 "B<mq_close>()  はメッセージキュー記述子 (message queue descriptor)  I<mqdes> "
116 "をクローズする。"
117
118 #. type: Plain text
119 #: build/C/man3/mq_close.3:47
120 msgid ""
121 "If the calling process has attached a notification request to this message "
122 "queue via I<mqdes>, then this request is removed, and another process can "
123 "now attach a notification request."
124 msgstr ""
125 "呼び出し元のプロセスが I<mqdes> 経由でこのメッセージキューに通知要求 "
126 "(notification request)  を設定している場合、通知要求は削除され、他のプロセス"
127 "がそのキューに 対して通知要求を設定できるようになる。"
128
129 #. type: SH
130 #: build/C/man3/mq_close.3:47 build/C/man3/mq_getattr.3:118
131 #: build/C/man3/mq_notify.3:134 build/C/man3/mq_open.3:136
132 #: build/C/man3/mq_receive.3:113 build/C/man3/mq_send.3:119
133 #: build/C/man3/mq_unlink.3:44 build/C/man2/msgctl.2:229
134 #: build/C/man2/msgget.2:137 build/C/man2/msgop.2:339
135 #, no-wrap
136 msgid "RETURN VALUE"
137 msgstr "返り値"
138
139 #. type: Plain text
140 #: build/C/man3/mq_close.3:53
141 msgid ""
142 "On success B<mq_close>()  returns 0; on error, -1 is returned, with I<errno> "
143 "set to indicate the error."
144 msgstr ""
145 "成功すると、 B<mq_close>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> "
146 "にエラーを示す値を設定する。"
147
148 #. type: SH
149 #: build/C/man3/mq_close.3:53 build/C/man3/mq_getattr.3:126
150 #: build/C/man3/mq_notify.3:140 build/C/man3/mq_open.3:148
151 #: build/C/man3/mq_receive.3:122 build/C/man3/mq_send.3:127
152 #: build/C/man3/mq_unlink.3:50 build/C/man2/msgctl.2:254
153 #: build/C/man2/msgget.2:143 build/C/man2/msgop.2:352
154 #, no-wrap
155 msgid "ERRORS"
156 msgstr "エラー"
157
158 #. type: TP
159 #: build/C/man3/mq_close.3:54 build/C/man3/mq_getattr.3:127
160 #: build/C/man3/mq_notify.3:141 build/C/man3/mq_receive.3:129
161 #: build/C/man3/mq_send.3:134
162 #, no-wrap
163 msgid "B<EBADF>"
164 msgstr "B<EBADF>"
165
166 #. type: Plain text
167 #: build/C/man3/mq_close.3:59 build/C/man3/mq_getattr.3:132
168 #: build/C/man3/mq_notify.3:146
169 msgid "The descriptor specified in I<mqdes> is invalid."
170 msgstr "I<mqdes> に指定されたディスクリプターが不正である。"
171
172 #. type: SH
173 #: build/C/man3/mq_close.3:59 build/C/man3/mq_getattr.3:137
174 #: build/C/man3/mq_open.3:237 build/C/man3/mq_receive.3:156
175 #: build/C/man3/mq_send.3:161 build/C/man3/mq_unlink.3:62
176 #, no-wrap
177 msgid "ATTRIBUTES"
178 msgstr "属性"
179
180 #. type: SS
181 #: build/C/man3/mq_close.3:60 build/C/man3/mq_getattr.3:138
182 #: build/C/man3/mq_open.3:238 build/C/man3/mq_receive.3:157
183 #: build/C/man3/mq_send.3:162 build/C/man3/mq_unlink.3:63
184 #, no-wrap
185 msgid "Multithreading (see pthreads(7))"
186 msgstr "マルチスレッディング (pthreads(7) 参照)"
187
188 #. type: Plain text
189 #: build/C/man3/mq_close.3:64
190 msgid "The B<mq_close>()  function is thread-safe."
191 msgstr "関数 B<mq_close>() はスレッドセーフである。"
192
193 #. type: SH
194 #: build/C/man3/mq_close.3:64 build/C/man3/mq_getattr.3:144
195 #: build/C/man2/mq_getsetattr.2:50 build/C/man3/mq_notify.3:174
196 #: build/C/man3/mq_open.3:242 build/C/man7/mq_overview.7:351
197 #: build/C/man3/mq_receive.3:163 build/C/man3/mq_send.3:168
198 #: build/C/man3/mq_unlink.3:67 build/C/man2/msgctl.2:325
199 #: build/C/man2/msgget.2:182 build/C/man2/msgop.2:482
200 #, no-wrap
201 msgid "CONFORMING TO"
202 msgstr "準拠"
203
204 #. type: Plain text
205 #: build/C/man3/mq_close.3:66 build/C/man3/mq_getattr.3:146
206 #: build/C/man3/mq_notify.3:176 build/C/man3/mq_open.3:244
207 #: build/C/man7/mq_overview.7:353 build/C/man3/mq_receive.3:165
208 #: build/C/man3/mq_send.3:170 build/C/man3/mq_unlink.3:69
209 msgid "POSIX.1-2001."
210 msgstr "POSIX.1-2001."
211
212 #. type: SH
213 #: build/C/man3/mq_close.3:66 build/C/man3/mq_getattr.3:146
214 #: build/C/man2/mq_getsetattr.2:52 build/C/man7/mq_overview.7:353
215 #: build/C/man3/mq_receive.3:165 build/C/man3/mq_send.3:170
216 #: build/C/man2/msgctl.2:328 build/C/man2/msgget.2:184
217 #: build/C/man2/msgop.2:494
218 #, no-wrap
219 msgid "NOTES"
220 msgstr "注意"
221
222 #. type: Plain text
223 #: build/C/man3/mq_close.3:70
224 msgid ""
225 "All open message queues are automatically closed on process termination, or "
226 "upon B<execve>(2)."
227 msgstr ""
228 "プロセス終了時、もしくは B<execve>(2)  実行時に、全てのオープンされたメッセー"
229 "ジキューは自動的にクローズされる。"
230
231 #. type: SH
232 #: build/C/man3/mq_close.3:70 build/C/man3/mq_getattr.3:230
233 #: build/C/man2/mq_getsetattr.2:56 build/C/man3/mq_notify.3:243
234 #: build/C/man3/mq_open.3:248 build/C/man7/mq_overview.7:378
235 #: build/C/man3/mq_receive.3:171 build/C/man3/mq_send.3:176
236 #: build/C/man3/mq_unlink.3:69 build/C/man2/msgctl.2:367
237 #: build/C/man2/msgget.2:229 build/C/man2/msgop.2:579
238 #, no-wrap
239 msgid "SEE ALSO"
240 msgstr "関連項目"
241
242 #. type: Plain text
243 #: build/C/man3/mq_close.3:78
244 msgid ""
245 "B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
246 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
247 msgstr ""
248 "B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
249 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
250
251 #. type: SH
252 #: build/C/man3/mq_close.3:78 build/C/man3/mq_getattr.3:238
253 #: build/C/man2/mq_getsetattr.2:59 build/C/man3/mq_notify.3:252
254 #: build/C/man3/mq_open.3:256 build/C/man7/mq_overview.7:392
255 #: build/C/man3/mq_receive.3:180 build/C/man3/mq_send.3:185
256 #: build/C/man3/mq_unlink.3:77 build/C/man2/msgctl.2:374
257 #: build/C/man2/msgget.2:237 build/C/man2/msgop.2:585
258 #, no-wrap
259 msgid "COLOPHON"
260 msgstr "この文書について"
261
262 #. type: Plain text
263 #: build/C/man3/mq_close.3:86 build/C/man3/mq_getattr.3:246
264 #: build/C/man2/mq_getsetattr.2:67 build/C/man3/mq_notify.3:260
265 #: build/C/man3/mq_open.3:264 build/C/man7/mq_overview.7:400
266 #: build/C/man3/mq_receive.3:188 build/C/man3/mq_send.3:193
267 #: build/C/man3/mq_unlink.3:85 build/C/man2/msgctl.2:382
268 #: build/C/man2/msgget.2:245 build/C/man2/msgop.2:593
269 #, fuzzy
270 #| msgid ""
271 #| "This page is part of release 3.78 of the Linux I<man-pages> project.  A "
272 #| "description of the project, information about reporting bugs, and the "
273 #| "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
274 #| "man-pages/."
275 msgid ""
276 "This page is part of release 3.79 of the Linux I<man-pages> project.  A "
277 "description of the project, information about reporting bugs, and the latest "
278 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
279 "pages/."
280 msgstr ""
281 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部\n"
282 "である。プロジェクトの説明とバグ報告に関する情報は\n"
283 "http://www.kernel.org/doc/man-pages/ に書かれている。"
284
285 #. type: TH
286 #: build/C/man3/mq_getattr.3:26
287 #, no-wrap
288 msgid "MQ_GETATTR"
289 msgstr "MQ_GETATTR"
290
291 #. type: TH
292 #: build/C/man3/mq_getattr.3:26
293 #, no-wrap
294 msgid "2014-10-02"
295 msgstr "2014-10-02"
296
297 #. type: Plain text
298 #: build/C/man3/mq_getattr.3:29
299 msgid "mq_getattr, mq_setattr - get/set message queue attributes"
300 msgstr "mq_getattr, mq_setattr - メッセージキューの属性を設定/取得する"
301
302 #. type: Plain text
303 #: build/C/man3/mq_getattr.3:34
304 #, no-wrap
305 msgid "B<int mq_getattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<attr>B<);>\n"
306 msgstr "B<int mq_getattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<attr>B<);>\n"
307
308 #. type: Plain text
309 #: build/C/man3/mq_getattr.3:37
310 #, no-wrap
311 msgid ""
312 "B<int mq_setattr(mqd_t >I<mqdes>B<, const struct mq_attr *>I<newattr>B<,>\n"
313 "B<                 struct mq_attr *>I<oldattr>B<);>\n"
314 msgstr ""
315 "B<int mq_setattr(mqd_t >I<mqdes>B<, const struct mq_attr *>I<newattr>B<,>\n"
316 "B<                 struct mq_attr *>I<oldattr>B<);>\n"
317
318 #. type: Plain text
319 #: build/C/man3/mq_getattr.3:47
320 msgid ""
321 "B<mq_getattr>()  and B<mq_setattr>()  respectively retrieve and modify "
322 "attributes of the message queue referred to by the descriptor I<mqdes>."
323 msgstr ""
324 "B<mq_getattr>()  と B<mq_setattr>()  は、記述子 I<mqdes> で参照されるメッセー"
325 "ジキューの属性の取得と変更をそれぞれ行う。"
326
327 #. type: Plain text
328 #: build/C/man3/mq_getattr.3:54
329 msgid ""
330 "B<mq_getattr>()  returns an I<mq_attr> structure in the buffer pointed by "
331 "I<attr>.  This structure is defined as:"
332 msgstr ""
333 "B<mq_getattr>()  は、 I<attr> が指すバッファーに I<mq_attr> 構造体を格納して"
334 "返す。この構造体は以下のように定義されている:"
335
336 #. type: Plain text
337 #: build/C/man3/mq_getattr.3:63
338 #, no-wrap
339 msgid ""
340 "struct mq_attr {\n"
341 "    long mq_flags;       /* Flags: 0 or O_NONBLOCK */\n"
342 "    long mq_maxmsg;      /* Max. # of messages on queue */\n"
343 "    long mq_msgsize;     /* Max. message size (bytes) */\n"
344 "    long mq_curmsgs;     /* # of messages currently in queue */\n"
345 "};\n"
346 msgstr ""
347 "struct mq_attr {\n"
348 "    long mq_flags;       /* フラグ: 0 か O_NONBLOCK */\n"
349 "    long mq_maxmsg;      /* キューの最大メッセージ数 */\n"
350 "    long mq_msgsize;     /* 最大メッセージサイズ (バイト単位) */\n"
351 "    long mq_curmsgs;     /* キューに現在入っているメッセージ数 */\n"
352 "};\n"
353
354 #. type: Plain text
355 #: build/C/man3/mq_getattr.3:73
356 msgid ""
357 "The I<mq_flags> field contains flags associated with the open message queue "
358 "description.  This field is initialized when the queue is created by "
359 "B<mq_open>(3).  The only flag that can appear in this field is B<O_NONBLOCK>."
360 msgstr ""
361 "I<mq_flags> フィールドには、オープンメッセージキュー記述 (open message queue "
362 "description) に関連付けられているフラグが格納される。 このフィールドは "
363 "B<mq_open>(3)  でキューが作成される際に初期化される。 このフィールドに現れる"
364 "フラグは B<O_NONBLOCK> だけである。"
365
366 #. type: Plain text
367 #: build/C/man3/mq_getattr.3:94
368 msgid ""
369 "The I<mq_maxmsg> and I<mq_msgsize> fields are set when the message queue is "
370 "created by B<mq_open>(3).  The I<mq_maxmsg> field is an upper limit on the "
371 "number of messages that may be placed on the queue using B<mq_send>(3).  The "
372 "I<mq_msgsize> field is an upper limit on the size of messages that may be "
373 "placed on the queue.  Both of these fields must have a value greater than "
374 "zero.  Two I</proc> files that place ceilings on the values for these fields "
375 "are described in B<mq_overview>(7)."
376 msgstr ""
377 "I<mq_maxmsg> と I<mq_msgsize> フィールドは B<mq_open>(3)  でメッセージキュー"
378 "が作成される際にセットされる。 I<mq_maxmsg> フィールドは、 B<mq_send>(3)  を"
379 "使ってキューに入れることができるメッセージ数の上限である。 I<mq_msgsize> "
380 "フィールドは、キューに入れることができるメッセージの 上限サイズである。 これ"
381 "らのフィールドはどちらも 0 より大きな値でなければならない。 これらのフィール"
382 "ドに設定できる値の上限は I</proc> ファイルにより決まる。 I</proc> ファイルの"
383 "詳細は B<mq_overview>(7)  に説明されている。"
384
385 #. type: Plain text
386 #: build/C/man3/mq_getattr.3:98
387 msgid ""
388 "The I<mq_curmsgs> field returns the number of messages currently held in the "
389 "queue."
390 msgstr ""
391 "I<mq_curmsgs> フィールドはキューに現在格納されているメッセージ数を返す。"
392
393 #. type: Plain text
394 #: build/C/man3/mq_getattr.3:118
395 msgid ""
396 "B<mq_setattr>()  sets message queue attributes using information supplied in "
397 "the I<mq_attr> structure pointed to by I<newattr>.  The only attribute that "
398 "can be modified is the setting of the B<O_NONBLOCK> flag in I<mq_flags>.  "
399 "The other fields in I<newattr> are ignored.  If the I<oldattr> field is not "
400 "NULL, then the buffer that it points to is used to return an I<mq_attr> "
401 "structure that contains the same information that is returned by "
402 "B<mq_getattr>()."
403 msgstr ""
404 "B<mq_setattr>()  は、 I<newattr> が指す I<mq_attr> 構造体で与えられた情報を"
405 "使って、メッセージキューの属性を設定する。 変更することができる属性は、 "
406 "I<mq_flags> の B<O_NONBLOCK> フラグの設定だけである。 I<newattr> の他のフィー"
407 "ルドは無視される。 I<oldattr> フィールドが NULL 以外の場合、 "
408 "B<mq_getattr>()  が返すのと同じ情報を格納した I<mq_attr> 構造体を I<oldattr> "
409 "が指すバッファーに入れて返す。"
410
411 #. type: Plain text
412 #: build/C/man3/mq_getattr.3:126
413 msgid ""
414 "On success B<mq_getattr>()  and B<mq_setattr>()  return 0; on error, -1 is "
415 "returned, with I<errno> set to indicate the error."
416 msgstr ""
417 "成功すると、 I<mq_getattr ()> と I<mq_setattr ()> は 0 を返す。エラーの場"
418 "合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
419
420 #. type: TP
421 #: build/C/man3/mq_getattr.3:132 build/C/man3/mq_notify.3:150
422 #: build/C/man3/mq_open.3:169 build/C/man3/mq_receive.3:138
423 #: build/C/man3/mq_send.3:143 build/C/man2/msgctl.2:285
424 #: build/C/man2/msgop.2:383 build/C/man2/msgop.2:439
425 #, no-wrap
426 msgid "B<EINVAL>"
427 msgstr "B<EINVAL>"
428
429 #. type: Plain text
430 #: build/C/man3/mq_getattr.3:137
431 msgid "I<newattr-E<gt>mq_flags> contained set bits other than B<O_NONBLOCK>."
432 msgstr ""
433 "I<newattr-E<gt>mq_flags> に B<O_NONBLOCK> 以外のビットがセットされていた。"
434
435 #. type: Plain text
436 #: build/C/man3/mq_getattr.3:144
437 msgid "The B<mq_getattr>()  and B<mq_setattr>()  functions are thread-safe."
438 msgstr "関数 B<mq_getattr>() と B<mq_setattr>() はスレッドセーフである。"
439
440 #. type: Plain text
441 #: build/C/man3/mq_getattr.3:154
442 msgid ""
443 "On Linux, B<mq_getattr>()  and B<mq_setattr>()  are library functions "
444 "layered on top of the B<mq_getsetattr>(2)  system call."
445 msgstr ""
446 "Linux では、 B<mq_getattr>()  と B<mq_setattr>()  はライブラリ関数であり、 "
447 "B<mq_getsetattr>(2)  システムコールを用いて実装されている。"
448
449 #. type: SH
450 #: build/C/man3/mq_getattr.3:154 build/C/man3/mq_notify.3:176
451 #: build/C/man7/mq_overview.7:366
452 #, no-wrap
453 msgid "EXAMPLE"
454 msgstr "例"
455
456 #. type: Plain text
457 #: build/C/man3/mq_getattr.3:165
458 msgid ""
459 "The program below can be used to show the default I<mq_maxmsg> and "
460 "I<mq_msgsize> values that are assigned to a message queue that is created "
461 "with a call to B<mq_open>(3)  in which the I<attr> argument is NULL.  Here "
462 "is an example run of the program:"
463 msgstr ""
464 "下記のプログラムを使うと、 I<attr> 引き数に NULL を指定して B<mq_open>(3) を"
465 "呼び出した際に作成されるメッセージキューに割り当てられるデフォルトの "
466 "I<mq_maxmsg> と I<mq_msgsize> の値を表示できる。 このプログラムの実行例を以下"
467 "に示す。"
468
469 #. type: Plain text
470 #: build/C/man3/mq_getattr.3:171
471 #, no-wrap
472 msgid ""
473 "$ B<./a.out /testq>\n"
474 "Maximum # of messages on queue:   10\n"
475 "Maximum message size:             8192\n"
476 msgstr ""
477 "$ B<./a.out /testq>\n"
478 "Maximum # of messages on queue:   10\n"
479 "Maximum message size:             8192\n"
480
481 #. type: Plain text
482 #: build/C/man3/mq_getattr.3:179
483 msgid ""
484 "Since Linux 3.5, the following I</proc> files (described in "
485 "B<mq_overview>(7))  can be used to control the defaults:"
486 msgstr ""
487 "Linux 3.5 以降では、 (B<mq_overview>(7) に説明がある) 以下の I</proc> ファイ"
488 "ルを使ってデフォルト値を制御できる。"
489
490 #. type: Plain text
491 #: build/C/man3/mq_getattr.3:188
492 #, no-wrap
493 msgid ""
494 "$ B<uname -sr>\n"
495 "Linux 3.8.0\n"
496 "$ B<cat /proc/sys/fs/mqueue/msg_default>\n"
497 "10\n"
498 "$ B<cat /proc/sys/fs/mqueue/msgsize_default>\n"
499 "8192\n"
500 msgstr ""
501 "$ B<uname -sr>\n"
502 "Linux 3.8.0\n"
503 "$ B<cat /proc/sys/fs/mqueue/msg_default>\n"
504 "10\n"
505 "$ B<cat /proc/sys/fs/mqueue/msgsize_default>\n"
506 "8192\n"
507
508 #. type: SS
509 #: build/C/man3/mq_getattr.3:190 build/C/man3/mq_notify.3:182
510 #, no-wrap
511 msgid "Program source"
512 msgstr "プログラムのソース"
513
514 #. type: Plain text
515 #: build/C/man3/mq_getattr.3:199
516 #, no-wrap
517 msgid ""
518 "#include E<lt>mqueue.hE<gt>\n"
519 "#include E<lt>sys/stat.hE<gt>\n"
520 "#include E<lt>fcntl.hE<gt>\n"
521 "#include E<lt>stdio.hE<gt>\n"
522 "#include E<lt>stdlib.hE<gt>\n"
523 "#include E<lt>unistd.hE<gt>\n"
524 msgstr ""
525 "#include E<lt>mqueue.hE<gt>\n"
526 "#include E<lt>sys/stat.hE<gt>\n"
527 "#include E<lt>fcntl.hE<gt>\n"
528 "#include E<lt>stdio.hE<gt>\n"
529 "#include E<lt>stdlib.hE<gt>\n"
530 "#include E<lt>unistd.hE<gt>\n"
531
532 #. type: Plain text
533 #: build/C/man3/mq_getattr.3:202
534 #, no-wrap
535 msgid ""
536 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
537 "                        } while (0)\n"
538 msgstr ""
539 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
540 "                        } while (0)\n"
541
542 #. type: Plain text
543 #: build/C/man3/mq_getattr.3:208
544 #, no-wrap
545 msgid ""
546 "int\n"
547 "main(int argc, char *argv[])\n"
548 "{\n"
549 "    mqd_t mqd;\n"
550 "    struct mq_attr attr;\n"
551 msgstr ""
552 "int\n"
553 "main(int argc, char *argv[])\n"
554 "{\n"
555 "    mqd_t mqd;\n"
556 "    struct mq_attr attr;\n"
557
558 #. type: Plain text
559 #: build/C/man3/mq_getattr.3:213
560 #, no-wrap
561 msgid ""
562 "    if (argc != 2) {\n"
563 "        fprintf(stderr, \"Usage: %s mq-name\\en\", argv[0]);\n"
564 "        exit(EXIT_FAILURE);\n"
565 "    }\n"
566 msgstr ""
567 "    if (argc != 2) {\n"
568 "        fprintf(stderr, \"Usage: %s mq-name\\en\", argv[0]);\n"
569 "        exit(EXIT_FAILURE);\n"
570 "    }\n"
571
572 #. type: Plain text
573 #: build/C/man3/mq_getattr.3:217
574 #, no-wrap
575 msgid ""
576 "    mqd = mq_open(argv[1], O_CREAT | O_EXCL, S_IRUSR | S_IWUSR, NULL);\n"
577 "    if (mqd == (mqd_t) -1)\n"
578 "        errExit(\"mq_open\");\n"
579 msgstr ""
580 "    mqd = mq_open(argv[1], O_CREAT | O_EXCL, S_IRUSR | S_IWUSR, NULL);\n"
581 "    if (mqd == (mqd_t) -1)\n"
582 "        errExit(\"mq_open\");\n"
583
584 #. type: Plain text
585 #: build/C/man3/mq_getattr.3:220
586 #, no-wrap
587 msgid ""
588 "    if (mq_getattr(mqd, &attr) == -1)\n"
589 "        errExit(\"mq_getattr\");\n"
590 msgstr ""
591 "    if (mq_getattr(mqd, &attr) == -1)\n"
592 "        errExit(\"mq_getattr\");\n"
593
594 #. type: Plain text
595 #: build/C/man3/mq_getattr.3:223
596 #, no-wrap
597 msgid ""
598 "    printf(\"Maximum # of messages on queue:   %ld\\en\", attr.mq_maxmsg);\n"
599 "    printf(\"Maximum message size:             %ld\\en\", attr.mq_msgsize);\n"
600 msgstr ""
601 "    printf(\"Maximum # of messages on queue:   %ld\\en\", attr.mq_maxmsg);\n"
602 "    printf(\"Maximum message size:             %ld\\en\", attr.mq_msgsize);\n"
603
604 #. type: Plain text
605 #: build/C/man3/mq_getattr.3:226
606 #, no-wrap
607 msgid ""
608 "    if (mq_unlink(argv[1]) == -1)\n"
609 "        errExit(\"mq_unlink\");\n"
610 msgstr ""
611 "    if (mq_unlink(argv[1]) == -1)\n"
612 "        errExit(\"mq_unlink\");\n"
613
614 #. type: Plain text
615 #: build/C/man3/mq_getattr.3:229
616 #, no-wrap
617 msgid ""
618 "    exit(EXIT_SUCCESS);\n"
619 "}\n"
620 msgstr ""
621 "    exit(EXIT_SUCCESS);\n"
622 "}\n"
623
624 #. type: Plain text
625 #: build/C/man3/mq_getattr.3:238
626 msgid ""
627 "B<mq_close>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
628 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
629 msgstr ""
630 "B<mq_close>(3), B<mq_notify>(3), B<mq_open>(3), B<mq_receive>(3), "
631 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
632
633 #. type: TH
634 #: build/C/man2/mq_getsetattr.2:26
635 #, no-wrap
636 msgid "MQ_GETSETATTR"
637 msgstr "MQ_GETSETATTR"
638
639 #. type: TH
640 #: build/C/man2/mq_getsetattr.2:26
641 #, no-wrap
642 msgid "2012-07-13"
643 msgstr "2012-07-13"
644
645 #. type: Plain text
646 #: build/C/man2/mq_getsetattr.2:29
647 msgid "mq_getsetattr - get/set message queue attributes"
648 msgstr "mq_getsetattr - メッセージキューの属性を設定/取得する"
649
650 #. type: Plain text
651 #: build/C/man2/mq_getsetattr.2:33
652 #, no-wrap
653 msgid ""
654 "B<#include E<lt>sys/types.hE<gt>>\n"
655 "B<#include E<lt>mqueue.hE<gt>>\n"
656 msgstr ""
657 "B<#include E<lt>sys/types.hE<gt>>\n"
658 "B<#include E<lt>mqueue.hE<gt>>\n"
659
660 #. type: Plain text
661 #: build/C/man2/mq_getsetattr.2:36
662 #, no-wrap
663 msgid ""
664 "B<int mq_getsetattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<newattr>B<,>\n"
665 "B<                 struct mq_attr *>I<oldattr>B<);>\n"
666 msgstr ""
667 "B<int mq_getsetattr(mqd_t >I<mqdes>B<, struct mq_attr *>I<newattr>B<,>\n"
668 "B<                 struct mq_attr *>I<oldattr>B<);>\n"
669
670 #. type: Plain text
671 #: build/C/man2/mq_getsetattr.2:40
672 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
673 msgstr ""
674 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
675 "を参照。"
676
677 #. type: Plain text
678 #: build/C/man2/mq_getsetattr.2:42
679 msgid "Do not use this system call."
680 msgstr "このシステムコールを使用しないこと。"
681
682 #. type: Plain text
683 #: build/C/man2/mq_getsetattr.2:50
684 msgid ""
685 "This is the low-level system call used to implement B<mq_getattr>(3)  and "
686 "B<mq_setattr>(3).  For an explanation of how this system call operates, see "
687 "the description of B<mq_setattr>(3)."
688 msgstr ""
689 "B<mq_getattr>(3)  と B<mq_setattr>(3)  の実装に使用される低レベルのシステム"
690 "コールである。 このシステムコールがどのように動作するかは B<mq_setattr>(3)  "
691 "の説明を参照のこと。"
692
693 #. type: Plain text
694 #: build/C/man2/mq_getsetattr.2:52
695 msgid "This interface is nonstandard; avoid its use."
696 msgstr "このインターフェースは非標準である。使用を避けること。"
697
698 #. type: Plain text
699 #: build/C/man2/mq_getsetattr.2:56
700 msgid ""
701 "Glibc does not provide a wrapper for this system call; call it using "
702 "B<syscall>(2).  (Actually, never call it unless you are writing a C library!)"
703 msgstr ""
704 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
705 "B<syscall>(2)  を使って呼び出すこと。 (実のところ、C ライブラリを書いているの"
706 "でない限り、 決してこのシステムコールを呼び出さないこと!)"
707
708 #. type: Plain text
709 #: build/C/man2/mq_getsetattr.2:59
710 msgid "B<mq_getattr>(3), B<mq_overview>(7)"
711 msgstr "B<mq_getattr>(3), B<mq_overview>(7)"
712
713 #. type: TH
714 #: build/C/man3/mq_notify.3:26
715 #, no-wrap
716 msgid "MQ_NOTIFY"
717 msgstr "MQ_NOTIFY"
718
719 #. type: TH
720 #: build/C/man3/mq_notify.3:26
721 #, no-wrap
722 msgid "2014-04-06"
723 msgstr "2014-04-06"
724
725 #. type: Plain text
726 #: build/C/man3/mq_notify.3:29
727 msgid "mq_notify - register for notification when a message is available"
728 msgstr "mq_notify - メッセージ到着時に通知を行うよう登録する"
729
730 #. type: Plain text
731 #: build/C/man3/mq_notify.3:34
732 #, no-wrap
733 msgid "B<int mq_notify(mqd_t >I<mqdes>B<, const struct sigevent *>I<sevp>B<);>\n"
734 msgstr "B<int mq_notify(mqd_t >I<mqdes>B<, const struct sigevent *>I<notification>B<);>\n"
735
736 #. type: Plain text
737 #: build/C/man3/mq_notify.3:43
738 msgid ""
739 "B<mq_notify>()  allows the calling process to register or unregister for "
740 "delivery of an asynchronous notification when a new message arrives on the "
741 "empty message queue referred to by the descriptor I<mqdes>."
742 msgstr ""
743 "B<mq_notify>()  を使うと、ディスクリプター I<mqdes> で参照される空のメッセー"
744 "ジキューに新しくメッセージが到着した時に 非同期の通知 (notification) の配送が"
745 "行われるように登録したり、 その解除を行ったりできる。"
746
747 #. type: Plain text
748 #: build/C/man3/mq_notify.3:51
749 msgid ""
750 "The I<sevp> argument is a pointer to a I<sigevent> structure.  For the "
751 "definition and general details of this structure, see B<sigevent>(7)."
752 msgstr ""
753 "I<sevp> 引き数は I<sigevent> 構造体へのポインターである。 この構造体の定義と"
754 "一般的な詳細については B<sigevent>(7)  を参照。"
755
756 #. type: Plain text
757 #: build/C/man3/mq_notify.3:65
758 msgid ""
759 "If I<sevp> is a non-null pointer, then B<mq_notify>()  registers the calling "
760 "process to receive message notification.  The I<sigev_notify> field of the "
761 "I<sigevent> structure to which I<sevp> points specifies how notification is "
762 "to be performed.  This field has one of the following values:"
763 msgstr ""
764 "I<sevp> が NULL でないポインターであれば、 B<mq_notify>()  はメッセージ通知を"
765 "受け取るように呼び出し元のプロセスを登録する。 I<sevp> が指す I<sigevent> 構"
766 "造体の I<sigev_notify> フィールドは、どのような通知を行うのかを指定する。 こ"
767 "のフィールドは以下の値のいずれかを持つ。"
768
769 #. type: TP
770 #: build/C/man3/mq_notify.3:65
771 #, no-wrap
772 msgid "B<SIGEV_NONE>"
773 msgstr "B<SIGEV_NONE>"
774
775 #.  When is SIGEV_NONE useful?
776 #. type: Plain text
777 #: build/C/man3/mq_notify.3:70
778 msgid ""
779 "A \"null\" notification: the calling process is registered as the target for "
780 "notification, but when a message arrives, no notification is sent."
781 msgstr ""
782 "「空の (null)」の通知: 呼び出し元のプロセスを通知の宛先として登録するが、 実"
783 "際にはメッセージが到着した時に通知は送られない。"
784
785 #. type: TP
786 #: build/C/man3/mq_notify.3:70
787 #, no-wrap
788 msgid "B<SIGEV_SIGNAL>"
789 msgstr "B<SIGEV_SIGNAL>"
790
791 #.  I don't know of other implementations that set
792 #.  si_pid and si_uid -- MTK
793 #. type: Plain text
794 #: build/C/man3/mq_notify.3:90
795 msgid ""
796 "Notify the process by sending the signal specified in I<sigev_signo>.  See "
797 "B<sigevent>(7)  for general details.  The I<si_code> field of the "
798 "I<siginfo_t> structure will be set to B<SI_MESGQ>.  In addition, I<si_pid> "
799 "will be set to the PID of the process that sent the message, and I<si_uid> "
800 "will be set to the real user ID of the sending process."
801 msgstr ""
802 "I<sigev_signo> で指定されたシグナルを送って、プロセスに通知する。 一般的な詳"
803 "細については B<sigevent>(7)  を参照。 I<siginfo_t> 構造体の I<si_code> フィー"
804 "ルドには B<SI_MESGQ> が設定される。 さらに、 I<si_pid> にはメッセージを送信し"
805 "たプロセスの PID が、 I<si_uid> には送信プロセスの実ユーザー ID が設定され"
806 "る。"
807
808 #. type: TP
809 #: build/C/man3/mq_notify.3:90
810 #, no-wrap
811 msgid "B<SIGEV_THREAD>"
812 msgstr "B<SIGEV_THREAD>"
813
814 #. type: Plain text
815 #: build/C/man3/mq_notify.3:98
816 msgid ""
817 "Upon message delivery, invoke I<sigev_notify_function> as if it were the "
818 "start function of a new thread.  See B<sigevent>(7)  for details."
819 msgstr ""
820 "メッセージの配送時には、 I<sigev_notify_function> があたかも新しいスレッドの"
821 "開始関数であるかのように起動される。 詳細は B<sigevent>(7)  を参照。"
822
823 #. type: Plain text
824 #: build/C/man3/mq_notify.3:101
825 msgid ""
826 "Only one process can be registered to receive notification from a message "
827 "queue."
828 msgstr ""
829 "一つのメッセージキューから通知を受信するように登録できるプロセスは 一つだけで"
830 "ある。"
831
832 #. type: Plain text
833 #: build/C/man3/mq_notify.3:108
834 msgid ""
835 "If I<sevp> is NULL, and the calling process is currently registered to "
836 "receive notifications for this message queue, then the registration is "
837 "removed; another process can then register to receive a message notification "
838 "for this queue."
839 msgstr ""
840 "I<sevp> が NULL で、かつ呼び出し元のプロセスがこのメッセージキューからの 通知"
841 "を受信するに現在登録している場合、登録を削除する。 これ以降、別のプロセスがこ"
842 "のメッセージキューから通知を受信するように 登録できるようになる。"
843
844 #. type: Plain text
845 #: build/C/man3/mq_notify.3:115
846 msgid ""
847 "Message notification occurs only when a new message arrives and the queue "
848 "was previously empty.  If the queue was not empty at the time "
849 "B<mq_notify>()  was called, then a notification will occur only after the "
850 "queue is emptied and a new message arrives."
851 msgstr ""
852 "メッセージ通知は、それまで空のキューに新しいメッセージが到着した 場合にのみ行"
853 "われる。 B<mq_notify>()  が呼び出された時にそのキューが空でない場合、 その"
854 "キューが空になり、その後新しいメッセージが到着した時に 初めて通知が行われるこ"
855 "とになる。"
856
857 #. type: Plain text
858 #: build/C/man3/mq_notify.3:123
859 msgid ""
860 "If another process or thread is waiting to read a message from an empty "
861 "queue using B<mq_receive>(3), then any message notification registration is "
862 "ignored: the message is delivered to the process or thread calling "
863 "B<mq_receive>(3), and the message notification registration remains in "
864 "effect."
865 msgstr ""
866 "別のプロセスやスレッドが B<mq_receive>(3)  を使って、空のキューからメッセージ"
867 "の読み出しを待っている場合、 メッセージ通知の登録は全て無視される。 メッセー"
868 "ジは B<mq_receive>(3)  を呼び出しているプロセスやスレッドに配送され、 メッ"
869 "セージ通知の登録は効力を持ったままとなる。"
870
871 #. type: Plain text
872 #: build/C/man3/mq_notify.3:134
873 msgid ""
874 "Notification occurs once: after a notification is delivered, the "
875 "notification registration is removed, and another process can register for "
876 "message notification.  If the notified process wishes to receive the next "
877 "notification, it can use B<mq_notify>()  to request a further notification.  "
878 "This should be done before emptying all unread messages from the queue.  "
879 "(Placing the queue in nonblocking mode is useful for emptying the queue of "
880 "messages without blocking once it is empty.)"
881 msgstr ""
882 "通知は一度だけ行われる。通知が送られた後は、通知要求の登録は削除され、 別のプ"
883 "ロセスがメッセージ通知を受信するように登録できるようになる。 通知を受けたプロ"
884 "セスが次の通知も受信したい場合は、 B<mq_notify>()  を使ってその後の通知も受け"
885 "るように要求することができる。 B<mq_notify>()  を再度呼び出すのは、読み出して"
886 "いないメッセージを全部読み出して キューが空になる前にすべきである (キューから"
887 "のメッセージ読み出しをキューが空になった時に 停止 (block) せずに行うには、"
888 "キューを非停止モード (non-blocking mode)  に設定しておくとよい)。"
889
890 #. type: Plain text
891 #: build/C/man3/mq_notify.3:140
892 msgid ""
893 "On success B<mq_notify>()  returns 0; on error, -1 is returned, with "
894 "I<errno> set to indicate the error."
895 msgstr ""
896 "成功すると、 B<mq_notify>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> "
897 "をエラーを示す値に設定する。"
898
899 #. type: TP
900 #: build/C/man3/mq_notify.3:146
901 #, no-wrap
902 msgid "B<EBUSY>"
903 msgstr "B<EBUSY>"
904
905 #. type: Plain text
906 #: build/C/man3/mq_notify.3:150
907 msgid ""
908 "Another process has already registered to receive notification for this "
909 "message queue."
910 msgstr ""
911 "別のプロセスがすでに このメッセージキューに対する通知を受信するように登録して"
912 "いる。"
913
914 #. type: Plain text
915 #: build/C/man3/mq_notify.3:160
916 msgid ""
917 "I<sevp-E<gt>sigev_notify> is not one of the permitted values; or I<sevp-"
918 "E<gt>sigev_notify> is B<SIGEV_SIGNAL> and I<sevp-E<gt>sigev_signo> is not a "
919 "valid signal number."
920 msgstr ""
921 "I<sevp-E<gt>sigev_notify> が許可された値のいずれでもない。もしくは I<sevp-"
922 "E<gt>sigev_notify> が B<SIGEV_SIGNAL> だが I<sevp-E<gt>sigev_signo> が有効な"
923 "シグナル番号ではない。"
924
925 #. type: TP
926 #: build/C/man3/mq_notify.3:160 build/C/man3/mq_open.3:227
927 #: build/C/man2/msgget.2:172 build/C/man2/msgop.2:394
928 #, no-wrap
929 msgid "B<ENOMEM>"
930 msgstr "B<ENOMEM>"
931
932 #. type: Plain text
933 #: build/C/man3/mq_notify.3:163 build/C/man3/mq_open.3:230
934 msgid "Insufficient memory."
935 msgstr "十分なメモリーがない。"
936
937 #.  Linux does not do this
938 #. type: Plain text
939 #: build/C/man3/mq_notify.3:174
940 msgid ""
941 "POSIX.1-2008 says that an implementation I<may> generate an B<EINVAL> error "
942 "if I<sevp> is NULL, and the caller is not currently registered to receive "
943 "notifications for the queue I<mqdes>."
944 msgstr ""
945 "POSIX.1-2008 では、 I<sevp> が NULL で、呼び出し元のプロセスがキュー "
946 "I<mqdes> に関する通知を受信するように登録されていない場合、エラー B<EINVAL> "
947 "を生成するような実装を行っても「よい」ことになっている。"
948
949 #. type: Plain text
950 #: build/C/man3/mq_notify.3:182
951 msgid ""
952 "The following program registers a notification request for the message queue "
953 "named in its command-line argument.  Notification is performed by creating a "
954 "thread.  The thread executes a function which reads one message from the "
955 "queue and then terminates the process."
956 msgstr ""
957 "以下のプログラムは、 コマンドライン引き数で指定された名前のメッセージキューへ"
958 "の 通知要求を登録し、通知はスレッドの作成によって行われる。 そのスレッドは、"
959 "そのキューからメッセージを一つ読み出してから、 プロセスを終了する関数を実行す"
960 "る。"
961
962 #. type: Plain text
963 #: build/C/man3/mq_notify.3:189
964 #, no-wrap
965 msgid ""
966 "#include E<lt>pthread.hE<gt>\n"
967 "#include E<lt>mqueue.hE<gt>\n"
968 "#include E<lt>stdio.hE<gt>\n"
969 "#include E<lt>stdlib.hE<gt>\n"
970 "#include E<lt>unistd.hE<gt>\n"
971 msgstr ""
972 "#include E<lt>pthread.hE<gt>\n"
973 "#include E<lt>mqueue.hE<gt>\n"
974 "#include E<lt>stdio.hE<gt>\n"
975 "#include E<lt>stdlib.hE<gt>\n"
976 "#include E<lt>unistd.hE<gt>\n"
977
978 #. type: Plain text
979 #: build/C/man3/mq_notify.3:192
980 #, no-wrap
981 msgid ""
982 "#define handle_error(msg) \\e\n"
983 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
984 msgstr ""
985 "#define handle_error(msg) \\e\n"
986 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
987
988 #. type: Plain text
989 #: build/C/man3/mq_notify.3:200
990 #, no-wrap
991 msgid ""
992 "static void                     /* Thread start function */\n"
993 "tfunc(union sigval sv)\n"
994 "{\n"
995 "    struct mq_attr attr;\n"
996 "    ssize_t nr;\n"
997 "    void *buf;\n"
998 "    mqd_t mqdes = *((mqd_t *) sv.sival_ptr);\n"
999 msgstr ""
1000 "static void                     /* スレッド開始関数 */\n"
1001 "tfunc(union sigval sv)\n"
1002 "{\n"
1003 "    struct mq_attr attr;\n"
1004 "    ssize_t nr;\n"
1005 "    void *buf;\n"
1006 "    mqd_t mqdes = *((mqd_t *) sv.sival_ptr);\n"
1007
1008 #. type: Plain text
1009 #: build/C/man3/mq_notify.3:202
1010 #, no-wrap
1011 msgid "    /* Determine max. msg size; allocate buffer to receive msg */\n"
1012 msgstr ""
1013 "    /* 最大メッセージサイズを決定し、\n"
1014 "       メッセージ受信用のバッファーを確保する */\n"
1015
1016 #. type: Plain text
1017 #: build/C/man3/mq_notify.3:208
1018 #, no-wrap
1019 msgid ""
1020 "    if (mq_getattr(mqdes, &attr) == -1)\n"
1021 "        handle_error(\"mq_getattr\");\n"
1022 "    buf = malloc(attr.mq_msgsize);\n"
1023 "    if (buf == NULL)\n"
1024 "        handle_error(\"malloc\");\n"
1025 msgstr ""
1026 "    if (mq_getattr(mqdes, &attr) == -1)\n"
1027 "        handle_error(\"mq_getattr\");\n"
1028 "    buf = malloc(attr.mq_msgsize);\n"
1029 "    if (buf == NULL)\n"
1030 "        handle_error(\"malloc\");\n"
1031
1032 #. type: Plain text
1033 #: build/C/man3/mq_notify.3:212
1034 #, no-wrap
1035 msgid ""
1036 "    nr = mq_receive(mqdes, buf, attr.mq_msgsize, NULL);\n"
1037 "    if (nr == -1)\n"
1038 "        handle_error(\"mq_receive\");\n"
1039 msgstr ""
1040 "    nr = mq_receive(mqdes, buf, attr.mq_msgsize, NULL);\n"
1041 "    if (nr == -1)\n"
1042 "        handle_error(\"mq_receive\");\n"
1043
1044 #. type: Plain text
1045 #: build/C/man3/mq_notify.3:217
1046 #, no-wrap
1047 msgid ""
1048 "    printf(\"Read %zd bytes from MQ\\en\", nr);\n"
1049 "    free(buf);\n"
1050 "    exit(EXIT_SUCCESS);         /* Terminate the process */\n"
1051 "}\n"
1052 msgstr ""
1053 "    printf(\"Read %zd bytes from MQ\\en\", nr);\n"
1054 "    free(buf);\n"
1055 "    exit(EXIT_SUCCESS);         /* プロセスを終了する */\n"
1056 "}\n"
1057
1058 #. type: Plain text
1059 #: build/C/man3/mq_notify.3:223
1060 #, no-wrap
1061 msgid ""
1062 "int\n"
1063 "main(int argc, char *argv[])\n"
1064 "{\n"
1065 "    mqd_t mqdes;\n"
1066 "    struct sigevent sev;\n"
1067 msgstr ""
1068 "int\n"
1069 "main(int argc, char *argv[])\n"
1070 "{\n"
1071 "    mqd_t mqdes;\n"
1072 "    struct sigevent sev;\n"
1073
1074 #. type: Plain text
1075 #: build/C/man3/mq_notify.3:228
1076 #, no-wrap
1077 msgid ""
1078 "    if (argc != 2) {\n"
1079 "        fprintf(stderr, \"Usage: %s E<lt>mq-nameE<gt>\\en\", argv[0]);\n"
1080 "        exit(EXIT_FAILURE);\n"
1081 "    }\n"
1082 msgstr ""
1083 "    if (argc != 2) {\n"
1084 "        fprintf(stderr, \"Usage: %s E<lt>mq-nameE<gt>\\en\", argv[0]);\n"
1085 "        exit(EXIT_FAILURE);\n"
1086 "    }\n"
1087
1088 #. type: Plain text
1089 #: build/C/man3/mq_notify.3:232
1090 #, no-wrap
1091 msgid ""
1092 "    mqdes = mq_open(argv[1], O_RDONLY);\n"
1093 "    if (mqdes == (mqd_t) -1)\n"
1094 "        handle_error(\"mq_open\");\n"
1095 msgstr ""
1096 "    mqdes = mq_open(argv[1], O_RDONLY);\n"
1097 "    if (mqdes == (mqd_t) -1)\n"
1098 "        handle_error(\"mq_open\");\n"
1099
1100 #. type: Plain text
1101 #: build/C/man3/mq_notify.3:239
1102 #, no-wrap
1103 msgid ""
1104 "    sev.sigev_notify = SIGEV_THREAD;\n"
1105 "    sev.sigev_notify_function = tfunc;\n"
1106 "    sev.sigev_notify_attributes = NULL;\n"
1107 "    sev.sigev_value.sival_ptr = &mqdes;   /* Arg. to thread func. */\n"
1108 "    if (mq_notify(mqdes, &sev) == -1)\n"
1109 "        handle_error(\"mq_notify\");\n"
1110 msgstr ""
1111 "    sev.sigev_notify = SIGEV_THREAD;\n"
1112 "    sev.sigev_notify_function = tfunc;\n"
1113 "    sev.sigev_notify_attributes = NULL;\n"
1114 "    sev.sigev_value.sival_ptr = &mqdes;   /* スレッド関数に渡す引き数 */\n"
1115 "    if (mq_notify(mqdes, &sev) == -1)\n"
1116 "        handle_error(\"mq_notify\");\n"
1117
1118 #. type: Plain text
1119 #: build/C/man3/mq_notify.3:242
1120 #, no-wrap
1121 msgid ""
1122 "    pause();    /* Process will be terminated by thread function */\n"
1123 "}\n"
1124 msgstr ""
1125 "    pause();    /* プロセスはスレッド関数により終了される */\n"
1126 "}\n"
1127
1128 #. type: Plain text
1129 #: build/C/man3/mq_notify.3:252
1130 msgid ""
1131 "B<mq_close>(3), B<mq_getattr>(3), B<mq_open>(3), B<mq_receive>(3), "
1132 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7), B<sigevent>(7)"
1133 msgstr ""
1134 "B<mq_close>(3), B<mq_getattr>(3), B<mq_open>(3), B<mq_receive>(3), "
1135 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7), B<sigevent>(7)"
1136
1137 #. type: TH
1138 #: build/C/man3/mq_open.3:26
1139 #, no-wrap
1140 msgid "MQ_OPEN"
1141 msgstr "MQ_OPEN"
1142
1143 #. type: TH
1144 #: build/C/man3/mq_open.3:26
1145 #, no-wrap
1146 msgid "2014-12-31"
1147 msgstr "2014-12-31"
1148
1149 #. type: Plain text
1150 #: build/C/man3/mq_open.3:29
1151 msgid "mq_open - open a message queue"
1152 msgstr "mq_open - メッセージキューをオープンする"
1153
1154 #. type: Plain text
1155 #: build/C/man3/mq_open.3:34
1156 #, no-wrap
1157 msgid ""
1158 "B<#include E<lt>fcntl.hE<gt>>           /* For O_* constants */\n"
1159 "B<#include E<lt>sys/stat.hE<gt>>        /* For mode constants */\n"
1160 "B<#include E<lt>mqueue.hE<gt>>\n"
1161 msgstr ""
1162 "B<#include E<lt>fcntl.hE<gt>>           /* For O_* constants */\n"
1163 "B<#include E<lt>sys/stat.hE<gt>>        /* For mode constants */\n"
1164 "B<#include E<lt>mqueue.hE<gt>>\n"
1165
1166 #. type: Plain text
1167 #: build/C/man3/mq_open.3:38
1168 #, no-wrap
1169 msgid ""
1170 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<);>\n"
1171 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<, mode_t >I<mode>B<,>\n"
1172 "B<              struct mq_attr *>I<attr>B<);>\n"
1173 msgstr ""
1174 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<);>\n"
1175 "B<mqd_t mq_open(const char *>I<name>B<, int >I<oflag>B<, mode_t >I<mode>B<,>\n"
1176 "B<              struct mq_attr *>I<attr>B<);>\n"
1177
1178 #. type: Plain text
1179 #: build/C/man3/mq_open.3:50
1180 msgid ""
1181 "B<mq_open>()  creates a new POSIX message queue or opens an existing queue.  "
1182 "The queue is identified by I<name>.  For details of the construction of "
1183 "I<name>, see B<mq_overview>(7)."
1184 msgstr ""
1185 "B<mq_open>()  は、新しい POSIX メッセージキューを作成するか、既存のキューを "
1186 "オープンする。キューは I<name> で識別される。 I<name> の構成の詳細については "
1187 "B<mq_overview (7)> を参照。"
1188
1189 #. type: Plain text
1190 #: build/C/man3/mq_open.3:58
1191 msgid ""
1192 "The I<oflag> argument specifies flags that control the operation of the "
1193 "call.  (Definitions of the flags values can be obtained by including "
1194 "I<E<lt>fcntl.hE<gt>>.)  Exactly one of the following must be specified in "
1195 "I<oflag>:"
1196 msgstr ""
1197 "I<oflag> 引き数には、関数呼び出しの操作を制御するフラグを指定する (oflag の値"
1198 "の定義は I<E<lt>fcntl.hE<gt>> のインクルードにより得られる)。 I<oflag> には、"
1199 "以下のうちいずれか一つを必ず指定しなければならない。"
1200
1201 #. type: TP
1202 #: build/C/man3/mq_open.3:58
1203 #, no-wrap
1204 msgid "B<O_RDONLY>"
1205 msgstr "B<O_RDONLY>"
1206
1207 #. type: Plain text
1208 #: build/C/man3/mq_open.3:61
1209 msgid "Open the queue to receive messages only."
1210 msgstr "メッセージの受信専用としてキューをオープンする。"
1211
1212 #. type: TP
1213 #: build/C/man3/mq_open.3:61
1214 #, no-wrap
1215 msgid "B<O_WRONLY>"
1216 msgstr "B<O_WRONLY>"
1217
1218 #. type: Plain text
1219 #: build/C/man3/mq_open.3:64
1220 msgid "Open the queue to send messages only."
1221 msgstr "メッセージの送信専用としてキューをオープンする。"
1222
1223 #. type: TP
1224 #: build/C/man3/mq_open.3:64
1225 #, no-wrap
1226 msgid "B<O_RDWR>"
1227 msgstr "B<O_RDWR>"
1228
1229 #. type: Plain text
1230 #: build/C/man3/mq_open.3:67
1231 msgid "Open the queue to both send and receive messages."
1232 msgstr "メッセージの送受信両用としてキューをオープンする。"
1233
1234 #. type: Plain text
1235 #: build/C/man3/mq_open.3:72
1236 msgid ""
1237 "Zero or more of the following flags can additionally be I<OR>ed in I<oflag>:"
1238 msgstr ""
1239 "0 個以上の下記のフラグを、ビット単位の OR (論理和) で I<oflag> に追加で指定で"
1240 "きる。"
1241
1242 #. type: TP
1243 #: build/C/man3/mq_open.3:72
1244 #, no-wrap
1245 msgid "B<O_CLOEXEC> (since Linux 2.6.26)"
1246 msgstr "B<O_CLOEXEC> (Linux 2.6.26 以降)"
1247
1248 #.  commit 269f21344b23e552c21c9e2d7ca258479dcd7a0a
1249 #. type: Plain text
1250 #: build/C/man3/mq_open.3:79
1251 msgid ""
1252 "Set the close-on-exec flag for the message queue descriptor.  See "
1253 "B<open>(2)  for a discussion of why this flag is useful."
1254 msgstr ""
1255 "メッセージキュー記述子に close-on-exec フラグをセットする。 なぜこのフラグが"
1256 "有用かについての議論は B<open>(2) を参照。"
1257
1258 #. type: TP
1259 #: build/C/man3/mq_open.3:79
1260 #, no-wrap
1261 msgid "B<O_CREAT>"
1262 msgstr "B<O_CREAT>"
1263
1264 #.  In reality the filesystem IDs are used on Linux.
1265 #. type: Plain text
1266 #: build/C/man3/mq_open.3:87
1267 msgid ""
1268 "Create the message queue if it does not exist.  The owner (user ID) of the "
1269 "message queue is set to the effective user ID of the calling process.  The "
1270 "group ownership (group ID) is set to the effective group ID of the calling "
1271 "process."
1272 msgstr ""
1273 "存在しない場合、メッセージキューを作成する。 メッセージキューの所有者 (ユー"
1274 "ザー ID) とグループ所有権 (グループ ID) は、 それぞれ呼び出し元プロセスの実効"
1275 "ユーザー ID と実効グループ ID に設定される。"
1276
1277 #. type: TP
1278 #: build/C/man3/mq_open.3:87
1279 #, no-wrap
1280 msgid "B<O_EXCL>"
1281 msgstr "B<O_EXCL>"
1282
1283 #. type: Plain text
1284 #: build/C/man3/mq_open.3:97
1285 msgid ""
1286 "If B<O_CREAT> was specified in I<oflag>, and a queue with the given I<name> "
1287 "already exists, then fail with the error B<EEXIST>."
1288 msgstr ""
1289 "B<O_CREAT> が I<oflag> に指定され、かつ指定された名前 I<name> を持つキューが"
1290 "すでに存在する場合、エラー B<EEXIST> で失敗する。"
1291
1292 #. type: TP
1293 #: build/C/man3/mq_open.3:97
1294 #, no-wrap
1295 msgid "B<O_NONBLOCK>"
1296 msgstr "B<O_NONBLOCK>"
1297
1298 #. type: Plain text
1299 #: build/C/man3/mq_open.3:106
1300 msgid ""
1301 "Open the queue in nonblocking mode.  In circumstances where "
1302 "B<mq_receive>(3)  and B<mq_send>(3)  would normally block, these functions "
1303 "instead fail with the error B<EAGAIN>."
1304 msgstr ""
1305 "非停止 (nonblocking) モードでキューをオープンする。 B<mq_receive>(3)  と "
1306 "B<mq_send>(3)  は、通常は停止 (block) する状況において、エラー B<EAGAIN> で失"
1307 "敗するようになる。"
1308
1309 #. type: Plain text
1310 #: build/C/man3/mq_open.3:120
1311 msgid ""
1312 "If B<O_CREAT> is specified in I<oflag>, then two additional arguments must "
1313 "be supplied.  The I<mode> argument specifies the permissions to be placed on "
1314 "the new queue, as for B<open>(2).  (Symbolic definitions for the permissions "
1315 "bits can be obtained by including I<E<lt>sys/stat.hE<gt>>.)  The permissions "
1316 "settings are masked against the process umask."
1317 msgstr ""
1318 "I<oflag> に B<O_CREAT> を指定する場合、追加で 2つの引き数を与える必要があ"
1319 "る。 I<mode> 引き数は、新しいキューに適用される許可設定 (permission) を、 "
1320 "B<open>(2)  と同じように指定する (許可ビットのシンボル定義は I<E<lt>sys/stat."
1321 "hE<gt>> のインクルードにより得られる)。 許可設定はプロセスの umask でマスクさ"
1322 "れる。"
1323
1324 #. type: Plain text
1325 #: build/C/man3/mq_open.3:136
1326 msgid ""
1327 "The I<attr> argument specifies attributes for the queue.  See "
1328 "B<mq_getattr>(3)  for details.  If I<attr> is NULL, then the queue is "
1329 "created with implementation-defined default attributes.  Since Linux 3.5, "
1330 "two I</proc> files can be used to control these defaults; see "
1331 "B<mq_overview>(7)  for details."
1332 msgstr ""
1333 "I<attr> 引き数は、キューの属性を指定する。詳細は、 B<mq_getattr>(3)  を参"
1334 "照。 I<attr> が NULL の場合、キューは実装で定義されたデフォルト属性で作成され"
1335 "る。 Linux 3.5 以降では、2 つの I</proc> ファイルがあり、これらのデフォルト値"
1336 "を制御できる。 詳細は B<mq_overview>(7) を参照。"
1337
1338 #. type: Plain text
1339 #: build/C/man3/mq_open.3:148
1340 msgid ""
1341 "On success, B<mq_open>()  returns a message queue descriptor for use by "
1342 "other message queue functions.  On error, B<mq_open>()  returns I<(mqd_t)\\ "
1343 "-1>, with I<errno> set to indicate the error."
1344 msgstr ""
1345 "成功すると、 B<mq_open>()  はメッセージキュー記述子 (message queue "
1346 "descriptor) を返す。 メッセージキュー記述子は他のメッセージキュー関連の関数で"
1347 "使用される。 エラーの場合、 B<mq_open>()  は I<(mqd_t)\\ -1> を返し、 "
1348 "I<errno> にエラーを示す値を設定する。"
1349
1350 #. type: TP
1351 #: build/C/man3/mq_open.3:149 build/C/man3/mq_open.3:153
1352 #: build/C/man3/mq_unlink.3:51 build/C/man2/msgctl.2:258
1353 #: build/C/man2/msgget.2:147 build/C/man2/msgop.2:358 build/C/man2/msgop.2:413
1354 #, no-wrap
1355 msgid "B<EACCES>"
1356 msgstr "B<EACCES>"
1357
1358 #. type: Plain text
1359 #: build/C/man3/mq_open.3:153
1360 msgid ""
1361 "The queue exists, but the caller does not have permission to open it in the "
1362 "specified mode."
1363 msgstr ""
1364 "キューは存在するが、呼び出し元が指定されたモードでそのキュー をオープンする許"
1365 "可を持たない。"
1366
1367 #.  Note that this isn't consistent with the same case for sem_open()
1368 #. type: Plain text
1369 #: build/C/man3/mq_open.3:158
1370 msgid "I<name> contained more than one slash."
1371 msgstr "I<name> にスラッシュが 2 個以上含まれていた。"
1372
1373 #. type: TP
1374 #: build/C/man3/mq_open.3:158 build/C/man2/msgget.2:155
1375 #, no-wrap
1376 msgid "B<EEXIST>"
1377 msgstr "B<EEXIST>"
1378
1379 #. type: Plain text
1380 #: build/C/man3/mq_open.3:169
1381 msgid ""
1382 "Both B<O_CREAT> and B<O_EXCL> were specified in I<oflag>, but a queue with "
1383 "this I<name> already exists."
1384 msgstr ""
1385 "I<oflag> に B<O_CREAT> と B<O_EXCL> の両方が指定されたが、指定された名前 "
1386 "I<name> を持つキューがすでに存在する。"
1387
1388 #. type: Plain text
1389 #: build/C/man3/mq_open.3:201
1390 msgid ""
1391 "B<O_CREAT> was specified in I<oflag>, and I<attr> was not NULL, but I<attr-"
1392 "E<gt>mq_maxmsg> or I<attr-E<gt>mq_msqsize> was invalid.  Both of these "
1393 "fields must be greater than zero.  In a process that is unprivileged (does "
1394 "not have the B<CAP_SYS_RESOURCE> capability), I<attr-E<gt>mq_maxmsg> must be "
1395 "less than or equal to the I<msg_max> limit, and I<attr-E<gt>mq_msgsize> must "
1396 "be less than or equal to the I<msgsize_max> limit.  In addition, even in a "
1397 "privileged process, I<attr-E<gt>mq_maxmsg> cannot exceed the B<HARD_MAX> "
1398 "limit.  (See B<mq_overview>(7)  for details of these limits.)"
1399 msgstr ""
1400 "I<oflag> に B<O_CREAT> が指定され、かつ I<attr> が NULL 以外だが、 I<attr-"
1401 "E<gt>mq_maxmsg> か I<attr-E<gt>mq_msqsize> が不正であった。 これらのフィール"
1402 "ドは両方とも 0 より大きくなければならない。 プロセスが特権を持たない "
1403 "(B<CAP_SYS_RESOURCE> ケーパビリティを持たない) 場合、 I<attr-E<gt>mq_maxmsg> "
1404 "と I<attr-E<gt>mq_msgsize> は、それぞれ上限 I<msg_max>、 I<msgsize_max> 以下"
1405 "でなければならない。 また、特権プロセスの場合でも、 I<attr-E<gt>mq_maxmsg> "
1406 "は B<HARD_MAX> 上限を超えることはできない。 (これらの上限に関する詳細は "
1407 "B<mq_overview>(7)  を参照。)"
1408
1409 #. type: TP
1410 #: build/C/man3/mq_open.3:201
1411 #, no-wrap
1412 msgid "B<EMFILE>"
1413 msgstr "B<EMFILE>"
1414
1415 #. type: Plain text
1416 #: build/C/man3/mq_open.3:205
1417 msgid ""
1418 "The process already has the maximum number of files and message queues open."
1419 msgstr ""
1420 "そのプロセスがオープンしているファイルとメッセージキューの数が プロセス毎の上"
1421 "限に達している。"
1422
1423 #. type: TP
1424 #: build/C/man3/mq_open.3:205 build/C/man3/mq_unlink.3:54
1425 #, no-wrap
1426 msgid "B<ENAMETOOLONG>"
1427 msgstr "B<ENAMETOOLONG>"
1428
1429 #. type: Plain text
1430 #: build/C/man3/mq_open.3:209 build/C/man3/mq_unlink.3:58
1431 msgid "I<name> was too long."
1432 msgstr "I<name> が長過ぎる。"
1433
1434 #. type: TP
1435 #: build/C/man3/mq_open.3:209
1436 #, no-wrap
1437 msgid "B<ENFILE>"
1438 msgstr "B<ENFILE>"
1439
1440 #. type: Plain text
1441 #: build/C/man3/mq_open.3:213
1442 msgid ""
1443 "The system limit on the total number of open files and message queues has "
1444 "been reached."
1445 msgstr ""
1446 "システム全体でオープンしているファイルとメッセージキューの合計数が システム上"
1447 "限に達している。"
1448
1449 #. type: TP
1450 #: build/C/man3/mq_open.3:213 build/C/man3/mq_open.3:222
1451 #: build/C/man3/mq_unlink.3:58 build/C/man2/msgget.2:164
1452 #, no-wrap
1453 msgid "B<ENOENT>"
1454 msgstr "B<ENOENT>"
1455
1456 #. type: Plain text
1457 #: build/C/man3/mq_open.3:222
1458 msgid ""
1459 "The B<O_CREAT> flag was not specified in I<oflag>, and no queue with this "
1460 "I<name> exists."
1461 msgstr ""
1462 "B<O_CREAT> フラグが I<oflag> に指定されなかったが、指定された名前 I<name> を"
1463 "持つキューが存在しない。"
1464
1465 #.  Note that this isn't consistent with the same case for sem_open()
1466 #. type: Plain text
1467 #: build/C/man3/mq_open.3:227
1468 msgid "I<name> was just \"/\" followed by no other characters."
1469 msgstr "I<name> が \"/\" だけで、その後ろに他の文字が続いていなかった。"
1470
1471 #. type: TP
1472 #: build/C/man3/mq_open.3:230 build/C/man2/msgget.2:176
1473 #, no-wrap
1474 msgid "B<ENOSPC>"
1475 msgstr "B<ENOSPC>"
1476
1477 #. type: Plain text
1478 #: build/C/man3/mq_open.3:237
1479 msgid ""
1480 "Insufficient space for the creation of a new message queue.  This probably "
1481 "occurred because the I<queues_max> limit was encountered; see "
1482 "B<mq_overview>(7)."
1483 msgstr ""
1484 "新しいメッセージキューを作成するのに十分な空間がない。 このエラーはおそらく "
1485 "I<queues_max> 上限に抵触したため起こったのだろう。 B<mq_overview>(7)  を参"
1486 "照。"
1487
1488 #. type: Plain text
1489 #: build/C/man3/mq_open.3:242
1490 msgid "The B<mq_open>()  function is thread-safe."
1491 msgstr "関数 B<mq_open>() はスレッドセーフである。"
1492
1493 #. type: SH
1494 #: build/C/man3/mq_open.3:244 build/C/man7/mq_overview.7:369
1495 #: build/C/man2/msgget.2:223 build/C/man2/msgop.2:543
1496 #, no-wrap
1497 msgid "BUGS"
1498 msgstr "バグ"
1499
1500 #. type: Plain text
1501 #: build/C/man3/mq_open.3:248
1502 msgid ""
1503 "In kernels before 2.6.14, the process umask was not applied to the "
1504 "permissions specified in I<mode>."
1505 msgstr ""
1506 "2.6.14 より前のカーネルには、 プロセスの umask が I<mode> で指定された許可設"
1507 "定に適用されなかった。"
1508
1509 #. type: Plain text
1510 #: build/C/man3/mq_open.3:256
1511 msgid ""
1512 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_receive>(3), "
1513 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
1514 msgstr ""
1515 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_receive>(3), "
1516 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7)"
1517
1518 #. type: TH
1519 #: build/C/man7/mq_overview.7:26
1520 #, no-wrap
1521 msgid "MQ_OVERVIEW"
1522 msgstr "MQ_OVERVIEW"
1523
1524 #. type: TH
1525 #: build/C/man7/mq_overview.7:26
1526 #, no-wrap
1527 msgid "2014-09-21"
1528 msgstr "2014-09-21"
1529
1530 #. type: Plain text
1531 #: build/C/man7/mq_overview.7:29
1532 msgid "mq_overview - overview of POSIX message queues"
1533 msgstr "mq_overview - POSIX メッセージキューの概要"
1534
1535 #. type: Plain text
1536 #: build/C/man7/mq_overview.7:37
1537 msgid ""
1538 "POSIX message queues allow processes to exchange data in the form of "
1539 "messages.  This API is distinct from that provided by System V message "
1540 "queues (B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2), etc.), but provides "
1541 "similar functionality."
1542 msgstr ""
1543 "POSIX メッセージキューを使用すると、プロセス間で メッセージの形でのデータのや"
1544 "り取りを行うことができる。 この API は System V メッセージキューの API "
1545 "(B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2)  など) とは異なるものだが、同様の機"
1546 "能を提供する。"
1547
1548 #. type: Plain text
1549 #: build/C/man7/mq_overview.7:52
1550 msgid ""
1551 "Message queues are created and opened using B<mq_open>(3); this function "
1552 "returns a I<message queue descriptor> (I<mqd_t>), which is used to refer to "
1553 "the open message queue in later calls.  Each message queue is identified by "
1554 "a name of the form I</somename>; that is, a null-terminated string of up to "
1555 "B<NAME_MAX> (i.e., 255) characters consisting of an initial slash, followed "
1556 "by one or more characters, none of which are slashes.  Two processes can "
1557 "operate on the same queue by passing the same name to B<mq_open>(3)."
1558 msgstr ""
1559 "メッセージキューの作成とオープンは B<mq_open>(3)  を使って行う。この関数は I<"
1560 "メッセージキュー記述子 (message queue descriptor)> (I<mqd_t>)  を返す。これ以"
1561 "降のコールでは、オープンされたメッセージキューは I<メッセージキュー記述子> を"
1562 "使って参照される。 各メッセージキューは I</somename> の形の名前で区別すること"
1563 "ができる。 その名前は、最大で B<NAME_MAX> (すなわち 255) 文字のヌル終端された"
1564 "文字列で、 スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式であ"
1565 "る。 B<mq_open>(3)  に同じ名前を渡すことで、2つのプロセスで同一のキューを 操"
1566 "作することができる。"
1567
1568 #. type: Plain text
1569 #: build/C/man7/mq_overview.7:68
1570 msgid ""
1571 "Messages are transferred to and from a queue using B<mq_send>(3)  and "
1572 "B<mq_receive>(3).  When a process has finished using the queue, it closes it "
1573 "using B<mq_close>(3), and when the queue is no longer required, it can be "
1574 "deleted using B<mq_unlink>(3).  Queue attributes can be retrieved and (in "
1575 "some cases) modified using B<mq_getattr>(3)  and B<mq_setattr>(3).  A "
1576 "process can request asynchronous notification of the arrival of a message on "
1577 "a previously empty queue using B<mq_notify>(3)."
1578 msgstr ""
1579 "メッセージのキューへの送受信は B<mq_send>(3)  と B<mq_receive>(3)  を使って行"
1580 "う。プロセスがキューの使用を終えるときには、 B<mq_close>(3)  を使ってキューを"
1581 "クローズする。キューがもはや不要となった場合には、 B<mq_unlink>(3)  を使って"
1582 "キューを削除できる。キューの属性は B<mq_getattr>(3)  で取得でき、 (制限はある"
1583 "が)  B<mq_setattr>(3)  で変更できる。 B<mq_notify>(3)  を使うことで、空の"
1584 "キューへのメッセージ到着を非同期で 通知するように要求することもできる。"
1585
1586 #. type: Plain text
1587 #: build/C/man7/mq_overview.7:81
1588 msgid ""
1589 "A message queue descriptor is a reference to an I<open message queue "
1590 "description> (cf.  B<open>(2)).  After a B<fork>(2), a child inherits copies "
1591 "of its parent's message queue descriptors, and these descriptors refer to "
1592 "the same open message queue descriptions as the corresponding descriptors in "
1593 "the parent.  Corresponding descriptors in the two processes share the flags "
1594 "(I<mq_flags>)  that are associated with the open message queue description."
1595 msgstr ""
1596 "メッセージキュー記述子は I<オープンメッセージキュー記述 (open message queue "
1597 "description)> への参照である (B<open>(2)  も参照)。 B<fork>(2)  実行後は、子"
1598 "プロセスは親プロセスのメッセージキュー記述子のコピーを継承する。 これらの記述"
1599 "子は、親プロセスの対応する記述子と同じオープンメッセージキュー 記述を参照して"
1600 "いる。親プロセスと子プロセスの対応する記述子は、フラグ (I<mq_flags>)  を共有"
1601 "する。なぜなら、フラグはオープンメッセージキュー記述に 関連付けられているから"
1602 "である。"
1603
1604 #. type: Plain text
1605 #: build/C/man7/mq_overview.7:94
1606 msgid ""
1607 "Each message has an associated I<priority>, and messages are always "
1608 "delivered to the receiving process highest priority first.  Message "
1609 "priorities range from 0 (low) to I<sysconf(_SC_MQ_PRIO_MAX)\\ -\\ 1> "
1610 "(high).  On Linux, I<sysconf(_SC_MQ_PRIO_MAX)> returns 32768, but "
1611 "POSIX.1-2001 requires only that an implementation support at least "
1612 "priorities in the range 0 to 31; some implementations provide only this "
1613 "range."
1614 msgstr ""
1615 "各メッセージにはそれぞれ I<優先度 (priority)> があり、メッセージの受信プロセ"
1616 "スへの配送は常に 優先度の高いメッセージから順に行われる。 メッセージの優先度"
1617 "は 0 (低優先) から I<sysconf(_SC_MQ_PRIO_MAX)\\ -\\ 1> (高優先) の値を持つ。 "
1618 "Linux では、 I<sysconf(_SC_MQ_PRIO_MAX)> は 32768 を返すが、 POSIX.1-2001 で"
1619 "要求されているのは最低限 0 から 31 までの優先度を実装することだけであり、実装"
1620 "によってはこの範囲の優先度しかサポートされていない。"
1621
1622 #. type: Plain text
1623 #: build/C/man7/mq_overview.7:97
1624 msgid ""
1625 "The remainder of this section describes some specific details of the Linux "
1626 "implementation of POSIX message queues."
1627 msgstr ""
1628 "この節の残りでは、POSIX メッセージキューの Linux の実装の詳細 について説明す"
1629 "る。"
1630
1631 #. type: SS
1632 #: build/C/man7/mq_overview.7:97
1633 #, no-wrap
1634 msgid "Library interfaces and system calls"
1635 msgstr "ライブラリインターフェースとシステムコール"
1636
1637 #. type: Plain text
1638 #: build/C/man7/mq_overview.7:103
1639 msgid ""
1640 "In most cases the B<mq_*>()  library interfaces listed above are implemented "
1641 "on top of underlying system calls of the same name.  Deviations from this "
1642 "scheme are indicated in the following table:"
1643 msgstr ""
1644 "ほとんどの場合、上記の B<mq_*>() ライブラリインターフェースは、同じ名前の下位"
1645 "層のシステムコールを 使って実装されている。この枠組みにあてはまらないものを "
1646 "以下の表に示す。"
1647
1648 #. type: tbl table
1649 #: build/C/man7/mq_overview.7:107
1650 #, no-wrap
1651 msgid "Library interface\tSystem call\n"
1652 msgstr "Library interface\tSystem call\n"
1653
1654 #. type: tbl table
1655 #: build/C/man7/mq_overview.7:108
1656 #, no-wrap
1657 msgid "mq_close(3)\tclose(2)\n"
1658 msgstr "mq_close(3)\tclose(2)\n"
1659
1660 #. type: tbl table
1661 #: build/C/man7/mq_overview.7:109
1662 #, no-wrap
1663 msgid "mq_getattr(3)\tmq_getsetattr(2)\n"
1664 msgstr "mq_getattr(3)\tmq_getsetattr(2)\n"
1665
1666 #. type: tbl table
1667 #: build/C/man7/mq_overview.7:110
1668 #, no-wrap
1669 msgid "mq_notify(3)\tmq_notify(2)\n"
1670 msgstr "mq_notify(3)\tmq_notify(2)\n"
1671
1672 #. type: tbl table
1673 #: build/C/man7/mq_overview.7:111
1674 #, no-wrap
1675 msgid "mq_open(3)\tmq_open(2)\n"
1676 msgstr "mq_open(3)\tmq_open(2)\n"
1677
1678 #. type: tbl table
1679 #: build/C/man7/mq_overview.7:112
1680 #, no-wrap
1681 msgid "mq_receive(3)\tmq_timedreceive(2)\n"
1682 msgstr "mq_receive(3)\tmq_timedreceive(2)\n"
1683
1684 #. type: tbl table
1685 #: build/C/man7/mq_overview.7:113
1686 #, no-wrap
1687 msgid "mq_send(3)\tmq_timedsend(2)\n"
1688 msgstr "mq_send(3)\tmq_timedsend(2)\n"
1689
1690 #. type: tbl table
1691 #: build/C/man7/mq_overview.7:114
1692 #, no-wrap
1693 msgid "mq_setattr(3)\tmq_getsetattr(2)\n"
1694 msgstr "mq_setattr(3)\tmq_getsetattr(2)\n"
1695
1696 #. type: tbl table
1697 #: build/C/man7/mq_overview.7:115
1698 #, no-wrap
1699 msgid "mq_timedreceive(3)\tmq_timedreceive(2)\n"
1700 msgstr "mq_timedreceive(3)\tmq_timedreceive(2)\n"
1701
1702 #. type: tbl table
1703 #: build/C/man7/mq_overview.7:116
1704 #, no-wrap
1705 msgid "mq_timedsend(3)\tmq_timedsend(2)\n"
1706 msgstr "mq_timedsend(3)\tmq_timedsend(2)\n"
1707
1708 #. type: tbl table
1709 #: build/C/man7/mq_overview.7:117
1710 #, no-wrap
1711 msgid "mq_unlink(3)\tmq_unlink(2)\n"
1712 msgstr "mq_unlink(3)\tmq_unlink(2)\n"
1713
1714 #. type: SS
1715 #: build/C/man7/mq_overview.7:120
1716 #, no-wrap
1717 msgid "Versions"
1718 msgstr "バージョン"
1719
1720 #. type: Plain text
1721 #: build/C/man7/mq_overview.7:123
1722 msgid ""
1723 "POSIX message queues have been supported on Linux since kernel 2.6.6.  Glibc "
1724 "support has been provided since version 2.3.4."
1725 msgstr ""
1726 "Linux では POSIX メッセージキューはカーネル 2.6.6 以降でサポートされている。 "
1727 "glibc ではバージョン 2.3.4 以降でサポートされている。"
1728
1729 #. type: SS
1730 #: build/C/man7/mq_overview.7:123
1731 #, no-wrap
1732 msgid "Kernel configuration"
1733 msgstr "カーネルの設定"
1734
1735 #. type: Plain text
1736 #: build/C/man7/mq_overview.7:128
1737 msgid ""
1738 "Support for POSIX message queues is configurable via the "
1739 "B<CONFIG_POSIX_MQUEUE> kernel configuration option.  This option is enabled "
1740 "by default."
1741 msgstr ""
1742 "POSIX メッセージキューのサポートは、カーネルの設定 (configuration)  オプショ"
1743 "ン B<CONFIG_POSIX_MQUEUE> で設定可能である。このオプションはデフォルトでは有"
1744 "効である。"
1745
1746 #. type: SS
1747 #: build/C/man7/mq_overview.7:128
1748 #, no-wrap
1749 msgid "Persistence"
1750 msgstr "持続性"
1751
1752 #. type: Plain text
1753 #: build/C/man7/mq_overview.7:133
1754 msgid ""
1755 "POSIX message queues have kernel persistence: if not removed by "
1756 "B<mq_unlink>(3), a message queue will exist until the system is shut down."
1757 msgstr ""
1758 "POSIX メッセージキューはカーネル内で保持される。 B<mq_unlink>(3)  で削除され"
1759 "なければ、メッセージキューは システムがシャットダウンされるまで存在し続ける。"
1760
1761 #. type: SS
1762 #: build/C/man7/mq_overview.7:133
1763 #, no-wrap
1764 msgid "Linking"
1765 msgstr "リンク"
1766
1767 #. type: Plain text
1768 #: build/C/man7/mq_overview.7:138
1769 msgid ""
1770 "Programs using the POSIX message queue API must be compiled with I<cc -lrt> "
1771 "to link against the real-time library, I<librt>."
1772 msgstr ""
1773 "POSIX メッセージキュー API を使用したプログラムは I<cc -lrt> でコンパイルし、"
1774 "リアルタイムライブラリ I<librt> とリンクしなければならない。"
1775
1776 #. type: SS
1777 #: build/C/man7/mq_overview.7:138
1778 #, no-wrap
1779 msgid "/proc interfaces"
1780 msgstr "/proc インターフェース"
1781
1782 #. type: Plain text
1783 #: build/C/man7/mq_overview.7:142
1784 msgid ""
1785 "The following interfaces can be used to limit the amount of kernel memory "
1786 "consumed by POSIX message queues and to set the default attributes for new "
1787 "message queues:"
1788 msgstr ""
1789 "以下のインターフェースを使って、 POSIX メッセージキューが消費するカーネル メ"
1790 "モリーの量を制限したり、 新規のメッセージキューのデフォルト属性を設定したりす"
1791 "ることができる。"
1792
1793 #. type: TP
1794 #: build/C/man7/mq_overview.7:142
1795 #, no-wrap
1796 msgid "I</proc/sys/fs/mqueue/msg_default> (since Linux 3.5)"
1797 msgstr "I</proc/sys/fs/mqueue/msg_default> (Linux 3.5 以降)"
1798
1799 #. type: Plain text
1800 #: build/C/man7/mq_overview.7:166
1801 msgid ""
1802 "This file defines the value used for a new queue's I<mq_maxmsg> setting when "
1803 "the queue is created with a call to B<mq_open>(3)  where I<attr> is "
1804 "specified as NULL.  The default value for this file is 10.  The minimum and "
1805 "maximum are as for I</proc/sys/fs/mqueue/msg_max>.  A new queue's default "
1806 "I<mq_maxmsg> value will be the smaller of I<msg_default> and I<msg_max>.  Up "
1807 "until Linux 2.6.28, the default I<mq_maxmsg> was 10; from Linux 2.6.28 to "
1808 "Linux 3.4, the default was the value defined for the I<msg_max> limit."
1809 msgstr ""
1810 "このファイルは、I<attr> に NULL を指定して B<mq_open>(3) を呼び出してキューが"
1811 "作成された際に、 その新規キューの I<mq_maxmsg> 設定に使用される値を定めてい"
1812 "る。 このファイルのデフォルト値は 10 である。 最小値と最大値は I</proc/sys/"
1813 "fs/mqueue/msg_max> と同様である。 新規キューのデフォルトの I<mq_maxmsg> 値は "
1814 "I<msg_default> と I<msg_max> の小さい方となる。 Linux 2.6.28 より前は、デフォ"
1815 "ルトの I<mq_maxmsg> は 10 であった。 Linux 2.6.28 から Linux 3.4 までは、 デ"
1816 "フォルト値は I<msg_max> 上限で規定される値であった。"
1817
1818 #. type: TP
1819 #: build/C/man7/mq_overview.7:166
1820 #, no-wrap
1821 msgid "I</proc/sys/fs/mqueue/msg_max>"
1822 msgstr "I</proc/sys/fs/mqueue/msg_max>"
1823
1824 #. type: Plain text
1825 #: build/C/man7/mq_overview.7:187
1826 msgid ""
1827 "This file can be used to view and change the ceiling value for the maximum "
1828 "number of messages in a queue.  This value acts as a ceiling on the I<attr-"
1829 "E<gt>mq_maxmsg> argument given to B<mq_open>(3).  The default value for "
1830 "I<msg_max> is 10.  The minimum value is 1 (10 in kernels before 2.6.28).  "
1831 "The upper limit is B<HARD_MSGMAX>.  The I<msg_max> limit is ignored for "
1832 "privileged processes (B<CAP_SYS_RESOURCE>), but the B<HARD_MSGMAX> ceiling "
1833 "is nevertheless imposed."
1834 msgstr ""
1835 "このファイルを使って、一つのキューに入れられるメッセージの最大数の 上限値を参"
1836 "照したり変更したりできる。この値は、 B<mq_open>(3)  に渡す I<attr-"
1837 "E<gt>mq_maxmsg> 引き数に対する上限値として機能する。 I<msg_max> のデフォルト"
1838 "値は 10 で、 最小値は 1 (2.6.28 より前のカーネルでは 10) である。 I<msg_max> "
1839 "に指定できる上限値は B<HARD_MSGMAX> である。 I<msg_max> 上限は特権プロセス "
1840 "(B<CAP_SYS_RESOURCE>)  では無視されるが、上限値 B<HARD_MSGMAX> はどんな場合に"
1841 "でも適用される。"
1842
1843 #. type: Plain text
1844 #: build/C/man7/mq_overview.7:191
1845 msgid "The definition of B<HARD_MSGMAX> has changed across kernel versions:"
1846 msgstr "B<HARD_MSGMAX> の定義はカーネルのバージョンにより異なる。"
1847
1848 #. type: IP
1849 #: build/C/man7/mq_overview.7:192 build/C/man7/mq_overview.7:195
1850 #: build/C/man7/mq_overview.7:198 build/C/man7/mq_overview.7:246
1851 #: build/C/man7/mq_overview.7:249 build/C/man7/mq_overview.7:251
1852 #: build/C/man2/msgop.2:118 build/C/man2/msgop.2:123 build/C/man2/msgop.2:147
1853 #: build/C/man2/msgop.2:154 build/C/man2/msgop.2:221 build/C/man2/msgop.2:226
1854 #: build/C/man2/msgop.2:240 build/C/man2/msgop.2:308 build/C/man2/msgop.2:310
1855 #: build/C/man2/msgop.2:316
1856 #, no-wrap
1857 msgid "*"
1858 msgstr "*"
1859
1860 #. type: Plain text
1861 #: build/C/man7/mq_overview.7:195
1862 msgid "Up to Linux 2.6.32: I<131072\\ /\\ sizeof(void\\ *)>"
1863 msgstr "Linux 2.6.32 以前: I<131072\\ /\\ sizeof(void\\ *)>"
1864
1865 #. type: Plain text
1866 #: build/C/man7/mq_overview.7:198
1867 msgid "Linux 2.6.33 to 3.4: I<(32768\\ *\\ sizeof(void\\ *) / 4)>"
1868 msgstr "Linux 2.6.33 以上 3.4 以下: I<(32768\\ *\\ sizeof(void\\ *) / 4)>"
1869
1870 #.  commit 5b5c4d1a1440e94994c73dddbad7be0676cd8b9a
1871 #. type: Plain text
1872 #: build/C/man7/mq_overview.7:202
1873 msgid "Since Linux 3.5: 65,536"
1874 msgstr "Linux 3.5 以降: 65,536"
1875
1876 #. type: TP
1877 #: build/C/man7/mq_overview.7:203
1878 #, no-wrap
1879 msgid "I</proc/sys/fs/mqueue/msgsize_default> (since Linux 3.5)"
1880 msgstr "I</proc/sys/fs/mqueue/msgsize_default> (Linux 3.5 以降)"
1881
1882 #. type: Plain text
1883 #: build/C/man7/mq_overview.7:230
1884 msgid ""
1885 "This file defines the value used for a new queue's I<mq_msgsize> setting "
1886 "when the queue is created with a call to B<mq_open>(3)  where I<attr> is "
1887 "specified as NULL.  The default value for this file is 8192 (bytes).  The "
1888 "minimum and maximum are as for I</proc/sys/fs/mqueue/msgsize_max>.  If "
1889 "I<msgsize_default> exceeds I<msgsize_max>, a new queue's default "
1890 "I<mq_msgsize> value is capped to the I<msgsize_max> limit.  Up until Linux "
1891 "2.6.28, the default I<mq_msgsize> was 8192; from Linux 2.6.28 to Linux 3.4, "
1892 "the default was the value defined for the I<msgsize_max> limit."
1893 msgstr ""
1894 "このファイルは、I<attr> に NULL を指定して B<mq_open>(3) を呼び出してキューが"
1895 "作成された際に、 その新規キューの I<mq_msgsize> 設定に使用される値を定めてい"
1896 "る。 このファイルのデフォルト値は 8192 バイトである。 最小値と最大値は I</"
1897 "proc/sys/fs/mqueue/msgsize_max> と同様である。 \n"
1898 "I<msgsize_default> が I<msgsize_max> より大きい場合は、 新規キューのデフォル"
1899 "トの I<mq_msgsize> 値は I<msgsize_max> 上限となる。 Linux 2.6.28 より前は、デ"
1900 "フォルトの I<mq_msgsize> は 8192 であった。 Linux 2.6.28 から Linux 3.4 まで"
1901 "は、 デフォルト値は I<msgsize_max> 上限で規定される値であった。"
1902
1903 #. type: TP
1904 #: build/C/man7/mq_overview.7:230
1905 #, no-wrap
1906 msgid "I</proc/sys/fs/mqueue/msgsize_max>"
1907 msgstr "I</proc/sys/fs/mqueue/msgsize_max>"
1908
1909 #. type: Plain text
1910 #: build/C/man7/mq_overview.7:245
1911 msgid ""
1912 "This file can be used to view and change the ceiling on the maximum message "
1913 "size.  This value acts as a ceiling on the I<attr-E<gt>mq_msgsize> argument "
1914 "given to B<mq_open>(3).  The default value for I<msgsize_max> is 8192 "
1915 "bytes.  The minimum value is 128 (8192 in kernels before 2.6.28).  The upper "
1916 "limit for I<msgsize_max> has varied across kernel versions:"
1917 msgstr ""
1918 "このファイルを使って、メッセージの最大サイズの上限値を参照したり変更したりで"
1919 "きる。 この値は、 B<mq_open>(3) に渡す I<attr-E<gt>mq_msgsize> 引き数に対する"
1920 "上限値として機能する。 I<msgsize_max> のデフォルト値は 8192 バイトで、 最小値"
1921 "は 128 (2.6.28 より前のカーネルでは 8192) である。 I<msgsize_max> の上限は"
1922 "カーネルのバージョンにより異なる。"
1923
1924 #. type: Plain text
1925 #: build/C/man7/mq_overview.7:249
1926 msgid "Before Linux 2.6.28, the upper limit is B<INT_MAX>."
1927 msgstr "Linux 2.6.28 より前のバージョンでは、上限は B<INT_MAX> である。"
1928
1929 #. type: Plain text
1930 #: build/C/man7/mq_overview.7:251
1931 msgid "From Linux 2.6.28 to 3.4, the limit is 1,048,576."
1932 msgstr "Linux 2.6.28 から 3.4 では、上限は 1,048,576 である。"
1933
1934 #. type: Plain text
1935 #: build/C/man7/mq_overview.7:254
1936 msgid "Since Linux 3.5, the limit is 16,777,216 (B<HARD_MSGSIZEMAX>)."
1937 msgstr "Linux 3.5 以降では、上限は 16,777,216 (B<HARD_MSGSIZEMAX>) である。"
1938
1939 #. type: Plain text
1940 #: build/C/man7/mq_overview.7:263
1941 msgid ""
1942 "The I<msgsize_max> limit is ignored for privileged process "
1943 "(B<CAP_SYS_RESOURCE>), but, since Linux 3.5, the B<HARD_MSGSIZEMAX> ceiling "
1944 "is enforced for privileged processes."
1945 msgstr ""
1946 "I<msgsize_max> 上限は特権プロセス (B<CAP_SYS_RESOURCE>) では無視されるが、 "
1947 "Linux 3.5 以降では特権プロセスにも B<HARD_MSGSIZEMAX> という上限が適用され"
1948 "る。"
1949
1950 #. type: TP
1951 #: build/C/man7/mq_overview.7:263
1952 #, no-wrap
1953 msgid "I</proc/sys/fs/mqueue/queues_max>"
1954 msgstr "I</proc/sys/fs/mqueue/queues_max>"
1955
1956 #. type: Plain text
1957 #: build/C/man7/mq_overview.7:275
1958 msgid ""
1959 "This file can be used to view and change the system-wide limit on the number "
1960 "of message queues that can be created.  The default value for I<queues_max> "
1961 "is 256.  No ceiling is imposed on the I<queues_max> limit; privileged "
1962 "processes (B<CAP_SYS_RESOURCE>)  can exceed the limit (but see BUGS)."
1963 msgstr ""
1964 "このファイルを使って、作成可能なメッセージキュー数のシステム全体での制限を参"
1965 "照したり変更したりできる。 I<queues_max> のデフォルト値は 256 である。 "
1966 "I<queues_max> に課される上限値はない。 特権プロセス (B<CAP_SYS_RESOURCE>) は"
1967 "この上限値を超えてメッセージキューを作成できる。"
1968
1969 #. type: SS
1970 #: build/C/man7/mq_overview.7:275
1971 #, no-wrap
1972 msgid "Resource limit"
1973 msgstr "リソース制限"
1974
1975 #. type: Plain text
1976 #: build/C/man7/mq_overview.7:282
1977 msgid ""
1978 "The B<RLIMIT_MSGQUEUE> resource limit, which places a limit on the amount of "
1979 "space that can be consumed by all of the message queues belonging to a "
1980 "process's real user ID, is described in B<getrlimit>(2)."
1981 msgstr ""
1982 "リソース上限 B<RLIMIT_MSGQUEUE> は、プロセスの実 UID に対応する全メッセージ"
1983 "キューが消費する メモリー空間の量に対して上限を設定する。 B<getrlimit>(2)  を"
1984 "参照。"
1985
1986 #. type: SS
1987 #: build/C/man7/mq_overview.7:282
1988 #, no-wrap
1989 msgid "Mounting the message queue filesystem"
1990 msgstr "メッセージキューファイルシステムのマウント"
1991
1992 #. type: Plain text
1993 #: build/C/man7/mq_overview.7:288
1994 msgid ""
1995 "On Linux, message queues are created in a virtual filesystem.  (Other "
1996 "implementations may also provide such a feature, but the details are likely "
1997 "to differ.)  This filesystem can be mounted (by the superuser) using the "
1998 "following commands:"
1999 msgstr ""
2000 "Linux では、メッセージキューは仮想ファイルシステム内に作成される (他の実装で"
2001 "も同様の機能が提供されているものもあるが、 詳細は違っているだろう)。 以下のコ"
2002 "マンドを使うことで (スーパーユーザーは)  このファイルシステムをマウントでき"
2003 "る:"
2004
2005 #. type: Plain text
2006 #: build/C/man7/mq_overview.7:293
2007 #, no-wrap
2008 msgid ""
2009 "#B< mkdir /dev/mqueue>\n"
2010 "#B< mount -t mqueue none /dev/mqueue>\n"
2011 msgstr ""
2012 "#B< mkdir /dev/mqueue>\n"
2013 "#B< mount -t mqueue none /dev/mqueue>\n"
2014
2015 #. type: Plain text
2016 #: build/C/man7/mq_overview.7:297
2017 msgid "The sticky bit is automatically enabled on the mount directory."
2018 msgstr ""
2019 "マウントしたディレクトリのスティッキービット (sticky bit) は 自動的にオンとな"
2020 "る。"
2021
2022 #. type: Plain text
2023 #: build/C/man7/mq_overview.7:304
2024 msgid ""
2025 "After the filesystem has been mounted, the message queues on the system can "
2026 "be viewed and manipulated using the commands usually used for files (e.g., "
2027 "B<ls>(1)  and B<rm>(1))."
2028 msgstr ""
2029 "メッセージキューファイルシステムのマウント後は、ファイルに対して 通常使うコマ"
2030 "ンド (例えば B<ls>(1)  や B<rm>(1))  を使って、システム上のメッセージキューを"
2031 "表示したり 操作したりできる。"
2032
2033 #. type: Plain text
2034 #: build/C/man7/mq_overview.7:307
2035 msgid ""
2036 "The contents of each file in the directory consist of a single line "
2037 "containing information about the queue:"
2038 msgstr ""
2039 "ディレクトリ内の各ファイルの内容は 1行であり、 キューに関する情報が表示され"
2040 "る。"
2041
2042 #. type: Plain text
2043 #: build/C/man7/mq_overview.7:312
2044 #, no-wrap
2045 msgid ""
2046 "$B< cat /dev/mqueue/mymq>\n"
2047 "QSIZE:129     NOTIFY:2    SIGNO:0    NOTIFY_PID:8260\n"
2048 msgstr ""
2049 "$B< cat /dev/mqueue/mymq>\n"
2050 "QSIZE:129     NOTIFY:2    SIGNO:0    NOTIFY_PID:8260\n"
2051
2052 #. type: Plain text
2053 #: build/C/man7/mq_overview.7:316
2054 msgid "These fields are as follows:"
2055 msgstr "各フィールドの詳細は以下の通りである:"
2056
2057 #. type: TP
2058 #: build/C/man7/mq_overview.7:316
2059 #, no-wrap
2060 msgid "B<QSIZE>"
2061 msgstr "B<QSIZE>"
2062
2063 #. type: Plain text
2064 #: build/C/man7/mq_overview.7:319
2065 msgid "Number of bytes of data in all messages in the queue."
2066 msgstr "キューに入っている全メッセージの合計バイト数。"
2067
2068 #. type: TP
2069 #: build/C/man7/mq_overview.7:319
2070 #, no-wrap
2071 msgid "B<NOTIFY_PID>"
2072 msgstr "B<NOTIFY_PID>"
2073
2074 #. type: Plain text
2075 #: build/C/man7/mq_overview.7:325
2076 msgid ""
2077 "If this is nonzero, then the process with this PID has used B<mq_notify>(3)  "
2078 "to register for asynchronous message notification, and the remaining fields "
2079 "describe how notification occurs."
2080 msgstr ""
2081 "この値が 0 以外の場合、この値の PID を持つプロセスが B<mq_notify>(3)  を使っ"
2082 "て、非同期のメッセージ通知を行うように設定したことを示す。 どのように通知が行"
2083 "われるかは、以下のフィールドにより決定される。"
2084
2085 #. type: TP
2086 #: build/C/man7/mq_overview.7:325
2087 #, no-wrap
2088 msgid "B<NOTIFY>"
2089 msgstr "B<NOTIFY>"
2090
2091 #. type: Plain text
2092 #: build/C/man7/mq_overview.7:335
2093 msgid ""
2094 "Notification method: 0 is B<SIGEV_SIGNAL>; 1 is B<SIGEV_NONE>; and 2 is "
2095 "B<SIGEV_THREAD>."
2096 msgstr ""
2097 "通知方法: 0 は B<SIGEV_SIGNAL>; 1 は B<SIGEV_NONE>; 2 は B<SIGEV_THREAD>"
2098
2099 #. type: TP
2100 #: build/C/man7/mq_overview.7:335
2101 #, no-wrap
2102 msgid "B<SIGNO>"
2103 msgstr "B<SIGNO>"
2104
2105 #. type: Plain text
2106 #: build/C/man7/mq_overview.7:339
2107 msgid "Signal number to be used for B<SIGEV_SIGNAL>."
2108 msgstr "B<SIGEV_SIGNAL> に使用されるシグナル番号。"
2109
2110 #. type: SS
2111 #: build/C/man7/mq_overview.7:339
2112 #, no-wrap
2113 msgid "Polling message queue descriptors"
2114 msgstr "メッセージキュー記述子のポーリング"
2115
2116 #. type: Plain text
2117 #: build/C/man7/mq_overview.7:347
2118 msgid ""
2119 "On Linux, a message queue descriptor is actually a file descriptor, and can "
2120 "be monitored using B<select>(2), B<poll>(2), or B<epoll>(7).  This is not "
2121 "portable."
2122 msgstr ""
2123 "Linux では、メッセージキュー記述子は実際はファイルディスクリプター (file "
2124 "descriptor)  であり、 B<select>(2), B<poll>(2), B<epoll>(7)  を使って監視する"
2125 "ことができる。 この機能の移植性はない。"
2126
2127 #. type: SS
2128 #: build/C/man7/mq_overview.7:347
2129 #, no-wrap
2130 msgid "IPC namespaces"
2131 msgstr "IPC 名前空間"
2132
2133 #. type: Plain text
2134 #: build/C/man7/mq_overview.7:351
2135 msgid ""
2136 "For a discussion of the interaction of System V IPC objects and IPC "
2137 "namespaces, see B<namespaces>(7)."
2138 msgstr ""
2139 "System V IPC オブジェクトと IPC 名前空間の相互の影響に関する議論は "
2140 "B<namespaces>(7) を参照。"
2141
2142 #. type: Plain text
2143 #: build/C/man7/mq_overview.7:363
2144 msgid ""
2145 "System V message queues (B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2), etc.) are "
2146 "an older API for exchanging messages between processes.  POSIX message "
2147 "queues provide a better designed interface than System V message queues; on "
2148 "the other hand POSIX message queues are less widely available (especially on "
2149 "older systems) than System V message queues."
2150 msgstr ""
2151 "System V メッセージキュー (B<msgget>(2), B<msgsnd>(2), B<msgrcv>(2)  など) は"
2152 "プロセス間でメッセージをやり取りするための古い API である。 POSIX メッセージ"
2153 "キューは System V メッセージキューよりもうまく 設計されたインターフェースを提"
2154 "供している。 一方で、POSIX メッセージキューは System V メッセージキューと比べ"
2155 "ると 利用できるシステムが少ない (特に、古いシステムでは少ない)。"
2156
2157 #. type: Plain text
2158 #: build/C/man7/mq_overview.7:366
2159 msgid ""
2160 "Linux does not currently (2.6.26) support the use of access control lists "
2161 "(ACLs) for POSIX message queues."
2162 msgstr ""
2163 "現在のことろ (バージョン 2.6.26 時点)、 Linux は POSIX メッセージキューに対す"
2164 "るアクセス制御リスト (ACL) に 対応していない。"
2165
2166 #. type: Plain text
2167 #: build/C/man7/mq_overview.7:369
2168 msgid ""
2169 "An example of the use of various message queue functions is shown in "
2170 "B<mq_notify>(3)."
2171 msgstr ""
2172 "各種のメッセージキュー関数を使用した例が B<mq_notify>(3)  に記載されている。"
2173
2174 #. type: Plain text
2175 #: build/C/man7/mq_overview.7:378
2176 msgid ""
2177 "In Linux versions 3.5 to 3.14, the kernel imposed a ceiling of 1024 "
2178 "(B<HARD_QUEUESMAX>)  on the value to which the I<queues_max> limit could be "
2179 "raised, and the ceiling was enforced even for privileged processes.  This "
2180 "ceiling value was removed in Linux 3.14, and patches to stable kernels 3.5.x "
2181 "to 3.13.x also removed the ceiling."
2182 msgstr ""
2183 "バージョン 3.5 以降 3.14 未満の Linux では、 I<queues_max> 上限を増やすことが"
2184 "できる最大値として 1024 (B<HARD_QUEUESMAX>) という最大上限値がカーネルにより"
2185 "適用されていた。 この最大上限値は特権プロセスにも適用されていた。 この最大上"
2186 "限値は Linux 3.14 で削除され、 パッチで安定版カーネル 3.5.x から 3.13.x から"
2187 "もこの最大上限値は削除された。"
2188
2189 #. type: Plain text
2190 #: build/C/man7/mq_overview.7:392
2191 msgid ""
2192 "B<getrlimit>(2), B<mq_getsetattr>(2), B<poll>(2), B<select>(2), "
2193 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2194 "B<mq_receive>(3), B<mq_send>(3), B<mq_unlink>(3), B<epoll>(7), "
2195 "B<namespaces>(7)"
2196 msgstr ""
2197 "B<getrlimit>(2), B<mq_getsetattr>(2), B<poll>(2), B<select>(2), "
2198 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2199 "B<mq_receive>(3), B<mq_send>(3), B<mq_unlink>(3), B<epoll>(7), "
2200 "B<namespaces>(7)"
2201
2202 #. type: TH
2203 #: build/C/man3/mq_receive.3:26
2204 #, no-wrap
2205 msgid "MQ_RECEIVE"
2206 msgstr "MQ_RECEIVE"
2207
2208 #. type: TH
2209 #: build/C/man3/mq_receive.3:26 build/C/man3/mq_send.3:26
2210 #, no-wrap
2211 msgid "2014-06-03"
2212 msgstr "2014-06-03"
2213
2214 #. type: Plain text
2215 #: build/C/man3/mq_receive.3:29
2216 msgid "mq_receive, mq_timedreceive - receive a message from a message queue"
2217 msgstr "mq_receive, mq_timedreceive - メッセージキューからメッセージを受信する"
2218
2219 #. type: Plain text
2220 #: build/C/man3/mq_receive.3:35
2221 #, no-wrap
2222 msgid ""
2223 "B<ssize_t mq_receive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
2224 "B<                   size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<);>\n"
2225 msgstr ""
2226 "B<ssize_t mq_receive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
2227 "B<                   size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<);>\n"
2228
2229 #. type: Plain text
2230 #: build/C/man3/mq_receive.3:38 build/C/man3/mq_send.3:38
2231 #, no-wrap
2232 msgid ""
2233 "B<#include E<lt>time.hE<gt>>\n"
2234 "B<#include E<lt>mqueue.hE<gt>>\n"
2235 msgstr ""
2236 "B<#include E<lt>time.hE<gt>>\n"
2237 "B<#include E<lt>mqueue.hE<gt>>\n"
2238
2239 #. type: Plain text
2240 #: build/C/man3/mq_receive.3:42
2241 #, no-wrap
2242 msgid ""
2243 "B<ssize_t mq_timedreceive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
2244 "B<                   size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<,>\n"
2245 "B<                   const struct timespec *>I<abs_timeout>B<);>\n"
2246 msgstr ""
2247 "B<ssize_t mq_timedreceive(mqd_t >I<mqdes>B<, char *>I<msg_ptr>B<,>\n"
2248 "B<                   size_t >I<msg_len>B<, unsigned int *>I<msg_prio>B<,>\n"
2249 "B<                   const struct timespec *>I<abs_timeout>B<);>\n"
2250
2251 #. type: Plain text
2252 #: build/C/man3/mq_receive.3:50 build/C/man3/mq_send.3:50
2253 msgid ""
2254 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
2255 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
2256
2257 #. type: Plain text
2258 #: build/C/man3/mq_receive.3:53
2259 msgid "B<mq_timedreceive>():"
2260 msgstr "B<mq_timedreceive>():"
2261
2262 #. type: Plain text
2263 #: build/C/man3/mq_receive.3:55 build/C/man3/mq_send.3:55
2264 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
2265 msgstr "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
2266
2267 #. type: Plain text
2268 #: build/C/man3/mq_receive.3:76
2269 msgid ""
2270 "B<mq_receive>()  removes the oldest message with the highest priority from "
2271 "the message queue referred to by the descriptor I<mqdes>, and places it in "
2272 "the buffer pointed to by I<msg_ptr>.  The I<msg_len> argument specifies the "
2273 "size of the buffer pointed to by I<msg_ptr>; this must be greater than or "
2274 "equal to the I<mq_msgsize> attribute of the queue (see B<mq_getattr>(3)).  "
2275 "If I<msg_prio> is not NULL, then the buffer to which it points is used to "
2276 "return the priority associated with the received message."
2277 msgstr ""
2278 "B<mq_receive>()  は、記述子 I<mqdes> で参照されるメッセージキューから最も高い"
2279 "優先度を持つ 最も古いメッセージを削除し、そのメッセージを I<msg_ptr> が指す"
2280 "バッファーに格納する。 I<msg_len> 引き数は、 I<msg_ptr> が指すバッファーの大"
2281 "きさを示す。この値はキューの I<mq_msgsize> 属性以上でなければならない "
2282 "(B<mq_getattr>(3)  参照)。 I<msg_prio> が NULL 以外の場合、 I<msg_prio> が指"
2283 "すバッファーに受信したメッセージの優先度が格納される。"
2284
2285 #. type: Plain text
2286 #: build/C/man3/mq_receive.3:86
2287 msgid ""
2288 "If the queue is empty, then, by default, B<mq_receive>()  blocks until a "
2289 "message becomes available, or the call is interrupted by a signal handler.  "
2290 "If the B<O_NONBLOCK> flag is enabled for the message queue description, then "
2291 "the call instead fails immediately with the error B<EAGAIN>."
2292 msgstr ""
2293 "キューが空の場合、デフォルトでは、 B<mq_receive>()  は、新しいメッセージが届"
2294 "くか、関数呼び出しがシグナルハンドラーにより 中断されるまで、停止 (block) す"
2295 "る。 メッセージキュー記述 (message queue description) で B<O_NONBLOCK> フラグ"
2296 "が有効になっている場合は、 B<mq_receive>()  はエラー B<EAGAIN> ですぐに失敗す"
2297 "る。"
2298
2299 #. type: Plain text
2300 #: build/C/man3/mq_receive.3:99
2301 msgid ""
2302 "B<mq_timedreceive>()  behaves just like B<mq_receive>(), except that if the "
2303 "queue is empty and the B<O_NONBLOCK> flag is not enabled for the message "
2304 "queue description, then I<abs_timeout> points to a structure which specifies "
2305 "a ceiling on the time for which the call will block.  This ceiling is an "
2306 "absolute timeout in seconds and nanoseconds since the Epoch, 1970-01-01 "
2307 "00:00:00 +0000 (UTC), and it is specified in the following structure:"
2308 msgstr ""
2309 "B<mq_timedreceive>()  は B<mq_receive>()  と全く同じ動作をするが、 メッセージ"
2310 "キューが空で、メッセージキュー記述で B<O_NONBLOCK> フラグが有効になっていない"
2311 "場合に、この呼び出しが停止する時間の上限を I<abs_timeout> が指す構造体で指定"
2312 "する点が異なる。この上限は、タイムアウトの時刻を、 時刻紀元 (Epoch; "
2313 "1970-01-01 00:00:00 +0000 (UTC)) からの経過時間 (秒とナノ秒の組) で指定する。"
2314 "タイムアウト時刻は以下の構造体で指定する:"
2315
2316 #. type: Plain text
2317 #: build/C/man3/mq_receive.3:106 build/C/man3/mq_send.3:112
2318 #, no-wrap
2319 msgid ""
2320 "struct timespec {\n"
2321 "    time_t tv_sec;        /* seconds */\n"
2322 "    long   tv_nsec;       /* nanoseconds */\n"
2323 "};\n"
2324 msgstr ""
2325 "struct timespec {\n"
2326 "    time_t tv_sec;        /* 秒 */\n"
2327 "    long   tv_nsec;       /* ナノ秒 */\n"
2328 "};\n"
2329
2330 #. type: Plain text
2331 #: build/C/man3/mq_receive.3:113
2332 msgid ""
2333 "If no message is available, and the timeout has already expired by the time "
2334 "of the call, B<mq_timedreceive>()  returns immediately."
2335 msgstr ""
2336 "メッセージがキューになく、関数呼び出し時にすでにタイムアウト時刻が 過ぎている"
2337 "場合、 B<mq_timedreceive>()  はすぐに返る。"
2338
2339 #. type: Plain text
2340 #: build/C/man3/mq_receive.3:122
2341 msgid ""
2342 "On success, B<mq_receive>()  and B<mq_timedreceive>()  return the number of "
2343 "bytes in the received message; on error, -1 is returned, with I<errno> set "
2344 "to indicate the error."
2345 msgstr ""
2346 "成功すると、 B<mq_receive>()  と B<mq_timedreceive>()  は受信したメッセージの"
2347 "バイト数を返す。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定す"
2348 "る。"
2349
2350 #. type: TP
2351 #: build/C/man3/mq_receive.3:123 build/C/man3/mq_send.3:128
2352 #: build/C/man2/msgop.2:364 build/C/man2/msgop.2:419
2353 #, no-wrap
2354 msgid "B<EAGAIN>"
2355 msgstr "B<EAGAIN>"
2356
2357 #. type: Plain text
2358 #: build/C/man3/mq_receive.3:129
2359 msgid ""
2360 "The queue was empty, and the B<O_NONBLOCK> flag was set for the message "
2361 "queue description referred to by I<mqdes>."
2362 msgstr ""
2363 "キューが空で、かつ I<mqdes> で参照されるメッセージキュー記述で B<O_NONBLOCK> "
2364 "フラグがセットされていた。"
2365
2366 #. type: Plain text
2367 #: build/C/man3/mq_receive.3:134 build/C/man3/mq_send.3:139
2368 msgid "The descriptor specified in I<mqdes> was invalid."
2369 msgstr "I<mqdes> で指定された記述子が不正である。"
2370
2371 #. type: TP
2372 #: build/C/man3/mq_receive.3:134 build/C/man3/mq_send.3:139
2373 #: build/C/man2/msgop.2:380 build/C/man2/msgop.2:434
2374 #, no-wrap
2375 msgid "B<EINTR>"
2376 msgstr "B<EINTR>"
2377
2378 #. type: Plain text
2379 #: build/C/man3/mq_receive.3:138 build/C/man3/mq_send.3:143
2380 msgid "The call was interrupted by a signal handler; see B<signal>(7)."
2381 msgstr ""
2382 "関数呼び出しがシグナルハンドラーにより中断された。 B<signal>(7)  参照。"
2383
2384 #. type: Plain text
2385 #: build/C/man3/mq_receive.3:147 build/C/man3/mq_send.3:152
2386 msgid ""
2387 "The call would have blocked, and I<abs_timeout> was invalid, either because "
2388 "I<tv_sec> was less than zero, or because I<tv_nsec> was less than zero or "
2389 "greater than 1000 million."
2390 msgstr ""
2391 "関数呼び出しは停止するはずであったが、 I<abs_timeout> が不正であった。 "
2392 "I<abs_timeout> が不正とは、 I<tv_sec> が 0 未満、もしくは I<tv_nsec> が 0 未"
2393 "満か 1,000,000,000 より大きい、ということである。"
2394
2395 #. type: TP
2396 #: build/C/man3/mq_receive.3:147 build/C/man3/mq_send.3:152
2397 #, no-wrap
2398 msgid "B<EMSGSIZE>"
2399 msgstr "B<EMSGSIZE>"
2400
2401 #. type: Plain text
2402 #: build/C/man3/mq_receive.3:153
2403 msgid ""
2404 "I<msg_len> was less than the I<mq_msgsize> attribute of the message queue."
2405 msgstr "I<msg_len> がメッセージキューの I<mq_msgsize> 属性よりも小さかった。"
2406
2407 #. type: TP
2408 #: build/C/man3/mq_receive.3:153 build/C/man3/mq_send.3:158
2409 #, no-wrap
2410 msgid "B<ETIMEDOUT>"
2411 msgstr "B<ETIMEDOUT>"
2412
2413 #. type: Plain text
2414 #: build/C/man3/mq_receive.3:156 build/C/man3/mq_send.3:161
2415 msgid "The call timed out before a message could be transferred."
2416 msgstr "メッセージが転送される前に関数呼び出しがタイムアウトした。"
2417
2418 #. type: Plain text
2419 #: build/C/man3/mq_receive.3:163
2420 msgid ""
2421 "The B<mq_receive>()  and B<mq_timedreceive>()  functions are thread-safe."
2422 msgstr "関数 B<mq_receive>() と B<mq_timedreceive>() はスレッドセーフである。"
2423
2424 #. type: Plain text
2425 #: build/C/man3/mq_receive.3:171
2426 msgid ""
2427 "On Linux, B<mq_timedreceive>()  is a system call, and B<mq_receive>()  is a "
2428 "library function layered on top of that system call."
2429 msgstr ""
2430 "Linux では、 B<mq_timedreceive>()  はシステムコールである。 B<mq_receive>()  "
2431 "はライブラリ関数で、 B<mq_timedreceive>()  システムコールを用いて実装されてい"
2432 "る。"
2433
2434 #. type: Plain text
2435 #: build/C/man3/mq_receive.3:180
2436 msgid ""
2437 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2438 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2439 msgstr ""
2440 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2441 "B<mq_send>(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2442
2443 #. type: TH
2444 #: build/C/man3/mq_send.3:26
2445 #, no-wrap
2446 msgid "MQ_SEND"
2447 msgstr "MQ_SEND"
2448
2449 #. type: Plain text
2450 #: build/C/man3/mq_send.3:29
2451 msgid "mq_send, mq_timedsend - send a message to a message queue"
2452 msgstr "mq_send, mq_timedsend - メッセージキューにメッセージを送信する"
2453
2454 #. type: Plain text
2455 #: build/C/man3/mq_send.3:35
2456 #, no-wrap
2457 msgid ""
2458 "B<int mq_send(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2459 "B<              size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<);>\n"
2460 msgstr ""
2461 "B<int mq_send(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2462 "B<              size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<);>\n"
2463
2464 #. type: Plain text
2465 #: build/C/man3/mq_send.3:42
2466 #, no-wrap
2467 msgid ""
2468 "B<int mq_timedsend(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2469 "B<              size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<,>\n"
2470 "B<              const struct timespec *>I<abs_timeout>B<);>\n"
2471 msgstr ""
2472 "B<int mq_timedsend(mqd_t >I<mqdes>B<, const char *>I<msg_ptr>B<,>\n"
2473 "B<              size_t >I<msg_len>B<, unsigned int >I<msg_prio>B<,>\n"
2474 "B<              const struct timespec *>I<abs_timeout>B<);>\n"
2475
2476 #. type: Plain text
2477 #: build/C/man3/mq_send.3:53
2478 msgid "B<mq_timedsend>():"
2479 msgstr "B<mq_timedsend>():"
2480
2481 #. type: Plain text
2482 #: build/C/man3/mq_send.3:71
2483 msgid ""
2484 "B<mq_send>()  adds the message pointed to by I<msg_ptr> to the message queue "
2485 "referred to by the descriptor I<mqdes>.  The I<msg_len> argument specifies "
2486 "the length of the message pointed to by I<msg_ptr>; this length must be less "
2487 "than or equal to the queue's I<mq_msgsize> attribute.  Zero-length messages "
2488 "are allowed."
2489 msgstr ""
2490 "B<mq_send>()  は、記述子 I<mqdes> で参照されるメッセージキューに I<msg_ptr> "
2491 "が指すメッセージを追加する。 I<msg_len> 引き数は、 I<msg_ptr> が指すメッセー"
2492 "ジの長さを示す。この長さはキューの I<mq_msgsize> 属性以下でなければならな"
2493 "い。 長さが 0 のメッセージも認められている。"
2494
2495 #. type: Plain text
2496 #: build/C/man3/mq_send.3:79
2497 msgid ""
2498 "The I<msg_prio> argument is a nonnegative integer that specifies the "
2499 "priority of this message.  Messages are placed on the queue in decreasing "
2500 "order of priority, with newer messages of the same priority being placed "
2501 "after older messages with the same priority."
2502 msgstr ""
2503 "I<msg_prio> 引き数は、メッセージの優先度を指定する負でない整数である。 メッ"
2504 "セージは優先度の降順でキューに格納され、同じ優先度の新しいメッセージは 同じ優"
2505 "先度の古いメッセージの後ろに格納される。"
2506
2507 #. type: Plain text
2508 #: build/C/man3/mq_send.3:92
2509 msgid ""
2510 "If the message queue is already full (i.e., the number of messages on the "
2511 "queue equals the queue's I<mq_maxmsg> attribute), then, by default, "
2512 "B<mq_send>()  blocks until sufficient space becomes available to allow the "
2513 "message to be queued, or until the call is interrupted by a signal handler.  "
2514 "If the B<O_NONBLOCK> flag is enabled for the message queue description, then "
2515 "the call instead fails immediately with the error B<EAGAIN>."
2516 msgstr ""
2517 "メッセージキューがすでに一杯の場合 (すなわち、キューに入っているメッセージ数"
2518 "がキューの I<mq_maxmsg> 属性と等しい場合)、デフォルトでは、 B<mq_send ()> "
2519 "は、メッセージをキューイングするのに十分な空間ができるか、 関数呼び出しがシグ"
2520 "ナルハンドラーにより中断されるまで、停止 (block) する。 メッセージキュー記述 "
2521 "(message queue description) で B<O_NONBLOCK> フラグが有効になっている場合"
2522 "は、 B<mq_send>()  はエラー B<EAGAIN> ですぐに失敗する。"
2523
2524 #. type: Plain text
2525 #: build/C/man3/mq_send.3:105
2526 msgid ""
2527 "B<mq_timedsend>()  behaves just like B<mq_send>(), except that if the queue "
2528 "is full and the B<O_NONBLOCK> flag is not enabled for the message queue "
2529 "description, then I<abs_timeout> points to a structure which specifies a "
2530 "ceiling on the time for which the call will block.  This ceiling is an "
2531 "absolute timeout in seconds and nanoseconds since the Epoch, 1970-01-01 "
2532 "00:00:00 +0000 (UTC), and it is specified in the following structure:"
2533 msgstr ""
2534 "B<mq_timedsend>()  は B<mq_send>()  と全く同じ動作をするが、 メッセージキュー"
2535 "が一杯で、メッセージキュー記述で B<O_NONBLOCK> フラグが有効になっていない場合"
2536 "に、この呼び出しが停止する時間の上限を I<abs_timeout> が指す構造体で指定する"
2537 "点が異なる。この上限は、タイムアウトの時刻を 時刻紀元 (Epoch; 1970-01-01 "
2538 "00:00:00 +0000 (UTC)) からの経過時間 (秒とナノ秒の組) で指定する。タイムアウ"
2539 "ト時刻は以下の構造体で指定する:"
2540
2541 #. type: Plain text
2542 #: build/C/man3/mq_send.3:119
2543 msgid ""
2544 "If the message queue is full, and the timeout has already expired by the "
2545 "time of the call, B<mq_timedsend>()  returns immediately."
2546 msgstr ""
2547 "メッセージキューが一杯で、関数呼び出し時にすでにタイムアウト時刻が 過ぎている"
2548 "場合、 B<mq_timedsend>()  はすぐに返る。"
2549
2550 #. type: Plain text
2551 #: build/C/man3/mq_send.3:127
2552 msgid ""
2553 "On success, B<mq_send>()  and B<mq_timedsend>()  return zero; on error, -1 "
2554 "is returned, with I<errno> set to indicate the error."
2555 msgstr ""
2556 "成功すると、 B<mq_send>()  と B<mq_timedsend>()  は 0 を返す。 エラーの場"
2557 "合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
2558
2559 #. type: Plain text
2560 #: build/C/man3/mq_send.3:134
2561 msgid ""
2562 "The queue was full, and the B<O_NONBLOCK> flag was set for the message queue "
2563 "description referred to by I<mqdes>."
2564 msgstr ""
2565 "キューが一杯で、かつ I<mqdes> で参照されるメッセージキュー記述で "
2566 "B<O_NONBLOCK> フラグがセットされていた。"
2567
2568 #. type: Plain text
2569 #: build/C/man3/mq_send.3:158
2570 msgid ""
2571 "I<msg_len> was greater than the I<mq_msgsize> attribute of the message queue."
2572 msgstr "I<msg_len> がメッセージキューの I<mq_msgsize> 属性よりも大きかった。"
2573
2574 #. type: Plain text
2575 #: build/C/man3/mq_send.3:168
2576 msgid "The B<mq_send>()  and B<mq_timedsend>()  functions are thread-safe."
2577 msgstr "関数 B<mq_send>() と B<mq_timedsend>() はスレッドセーフである。"
2578
2579 #. type: Plain text
2580 #: build/C/man3/mq_send.3:176
2581 msgid ""
2582 "On Linux, B<mq_timedsend>()  is a system call, and B<mq_send>()  is a "
2583 "library function layered on top of that system call."
2584 msgstr ""
2585 "Linux では、 B<mq_timedsend>()  はシステムコールである。 B<mq_send>()  はライ"
2586 "ブラリ関数で、 B<mq_timedsend>()  システムコールを用いて実装されている。"
2587
2588 #. type: Plain text
2589 #: build/C/man3/mq_send.3:185
2590 msgid ""
2591 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2592 "B<mq_receive>(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2593 msgstr ""
2594 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2595 "B<mq_receive>(3), B<mq_unlink>(3), B<mq_overview>(7), B<time>(7)"
2596
2597 #. type: TH
2598 #: build/C/man3/mq_unlink.3:26
2599 #, no-wrap
2600 msgid "MQ_UNLINK"
2601 msgstr "MQ_UNLINK"
2602
2603 #. type: Plain text
2604 #: build/C/man3/mq_unlink.3:29
2605 msgid "mq_unlink - remove a message queue"
2606 msgstr "mq_unlink - メッセージキューを削除する"
2607
2608 #. type: Plain text
2609 #: build/C/man3/mq_unlink.3:34
2610 #, no-wrap
2611 msgid "B<int mq_unlink(const char *>I<name>B<);>\n"
2612 msgstr "B<int mq_unlink(const char *>I<name>B<);>\n"
2613
2614 #. type: Plain text
2615 #: build/C/man3/mq_unlink.3:44
2616 msgid ""
2617 "B<mq_unlink>()  removes the specified message queue I<name>.  The message "
2618 "queue name is removed immediately.  The queue itself is destroyed once any "
2619 "other processes that have the queue open close their descriptors referring "
2620 "to the queue."
2621 msgstr ""
2622 "B<mq_unlink>()  は指定されたメッセージキュー I<name> を削除する。 メッセージ"
2623 "キュー名は直ちに削除される。 キュー自体は、そのキューをオープンした他のすべて"
2624 "のプロセスが そのキューを参照する記述子をクローズした時点で破棄される。"
2625
2626 #. type: Plain text
2627 #: build/C/man3/mq_unlink.3:50
2628 msgid ""
2629 "On success B<mq_unlink>()  returns 0; on error, -1 is returned, with "
2630 "I<errno> set to indicate the error."
2631 msgstr ""
2632 "成功すると、 B<mq_unlink>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> "
2633 "にエラーを示す値を設定する。"
2634
2635 #. type: Plain text
2636 #: build/C/man3/mq_unlink.3:54
2637 msgid "The caller does not have permission to unlink this message queue."
2638 msgstr ""
2639 "呼び出し元プロセスがこのメッセージキューを削除 (unlink) する 許可を持たない。"
2640
2641 #. type: Plain text
2642 #: build/C/man3/mq_unlink.3:62
2643 msgid "There is no message queue with the given I<name>."
2644 msgstr "指定された名前 I<name> を持つメッセージキューが存在しない。"
2645
2646 #. type: Plain text
2647 #: build/C/man3/mq_unlink.3:67
2648 msgid "The B<mq_unlink>()  function is thread-safe."
2649 msgstr "関数 B<mq_unlink>() はスレッドセーフである。"
2650
2651 #. type: Plain text
2652 #: build/C/man3/mq_unlink.3:77
2653 msgid ""
2654 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2655 "B<mq_receive>(3), B<mq_send>(3), B<mq_overview>(7)"
2656 msgstr ""
2657 "B<mq_close>(3), B<mq_getattr>(3), B<mq_notify>(3), B<mq_open>(3), "
2658 "B<mq_receive>(3), B<mq_send>(3), B<mq_overview>(7)"
2659
2660 #. type: TH
2661 #: build/C/man2/msgctl.2:37
2662 #, no-wrap
2663 msgid "MSGCTL"
2664 msgstr "MSGCTL"
2665
2666 #. type: TH
2667 #: build/C/man2/msgctl.2:37
2668 #, no-wrap
2669 msgid "2014-02-24"
2670 msgstr "2014-02-24"
2671
2672 #. type: Plain text
2673 #: build/C/man2/msgctl.2:40
2674 msgid "msgctl - System V message control operations"
2675 msgstr "msgctl - System V メッセージ制御操作"
2676
2677 #. type: Plain text
2678 #: build/C/man2/msgctl.2:45 build/C/man2/msgget.2:43 build/C/man2/msgop.2:49
2679 #, no-wrap
2680 msgid ""
2681 "B<#include E<lt>sys/types.hE<gt>>\n"
2682 "B<#include E<lt>sys/ipc.hE<gt>>\n"
2683 "B<#include E<lt>sys/msg.hE<gt>>\n"
2684 msgstr ""
2685 "B<#include E<lt>sys/types.hE<gt>>\n"
2686 "B<#include E<lt>sys/ipc.hE<gt>>\n"
2687 "B<#include E<lt>sys/msg.hE<gt>>\n"
2688
2689 #. type: Plain text
2690 #: build/C/man2/msgctl.2:47
2691 #, no-wrap
2692 msgid "B<int msgctl(int >I<msqid>B<, int >I<cmd>B<, struct msqid_ds *>I<buf>B<);>\n"
2693 msgstr "B<int msgctl(int >I<msqid>B<, int >I<cmd>B<, struct msqid_ds *>I<buf>B<);>\n"
2694
2695 #. type: Plain text
2696 #: build/C/man2/msgctl.2:54
2697 msgid ""
2698 "B<msgctl>()  performs the control operation specified by I<cmd> on the System"
2699 "\\ V message queue with identifier I<msqid>."
2700 msgstr ""
2701 "B<msgctl>()  はメッセージキュー識別子 I<msqid> で指定された System\\ V メッ"
2702 "セージキュー (message queue) に対して I<cmd> で指定された制御操作を行なう。"
2703
2704 #. type: Plain text
2705 #: build/C/man2/msgctl.2:58
2706 msgid ""
2707 "The I<msqid_ds> data structure is defined in I<E<lt>sys/msg.hE<gt>> as "
2708 "follows:"
2709 msgstr ""
2710 "I<msqid_ds> データ構造体は I<E<lt>sys/msg.hE<gt>> で以下のように定義されてい"
2711 "る:"
2712
2713 #. type: Plain text
2714 #: build/C/man2/msgctl.2:75
2715 #, no-wrap
2716 msgid ""
2717 "struct msqid_ds {\n"
2718 "    struct ipc_perm msg_perm;     /* Ownership and permissions */\n"
2719 "    time_t          msg_stime;    /* Time of last msgsnd(2) */\n"
2720 "    time_t          msg_rtime;    /* Time of last msgrcv(2) */\n"
2721 "    time_t          msg_ctime;    /* Time of last change */\n"
2722 "    unsigned long   __msg_cbytes; /* Current number of bytes in\n"
2723 "                                     queue (nonstandard) */\n"
2724 "    msgqnum_t       msg_qnum;     /* Current number of messages\n"
2725 "                                     in queue */\n"
2726 "    msglen_t        msg_qbytes;   /* Maximum number of bytes\n"
2727 "                                     allowed in queue */\n"
2728 "    pid_t           msg_lspid;    /* PID of last msgsnd(2) */\n"
2729 "    pid_t           msg_lrpid;    /* PID of last msgrcv(2) */\n"
2730 "};\n"
2731 msgstr ""
2732 "struct msqid_ds {\n"
2733 "    struct ipc_perm msg_perm;     /* 所有権と許可 */\n"
2734 "    time_t          msg_stime;    /* 最後の msgsnd(2) の時刻 */\n"
2735 "    time_t          msg_rtime;    /* 最後の msgrcv(2) の時刻 */\n"
2736 "    time_t          msg_ctime;    /* 最後に変更が行われた時刻 */\n"
2737 "    unsigned long   __msg_cbytes; /* キューにある現在のバイト数\n"
2738 "                                     (非標準) */\n"
2739 "    msgqnum_t       msg_qnum;     /* キューにある現在入っている\n"
2740 "                                     メッセージの数 */\n"
2741 "    msglen_t        msg_qbytes;   /* キューに許可されている\n"
2742 "                                     最大バイト数 */\n"
2743 "    pid_t           msg_lspid;    /* 最後の msgsnd(2) の PID */\n"
2744 "    pid_t           msg_lrpid;    /* 最後の msgrcv(2) の PID */\n"
2745 "};\n"
2746
2747 #. type: Plain text
2748 #: build/C/man2/msgctl.2:83
2749 msgid ""
2750 "The I<ipc_perm> structure is defined as follows (the highlighted fields are "
2751 "settable using B<IPC_SET>):"
2752 msgstr ""
2753 "I<ipc_perm> 構造体は以下のように定義されている (強調されたフィールドは "
2754 "B<IPC_SET> を使って設定可能である):"
2755
2756 #. type: Plain text
2757 #: build/C/man2/msgctl.2:95
2758 #, no-wrap
2759 msgid ""
2760 "struct ipc_perm {\n"
2761 "    key_t          __key;       /* Key supplied to msgget(2) */\n"
2762 "    uid_t          B<uid>;         /* Effective UID of owner */\n"
2763 "    gid_t          B<gid>;         /* Effective GID of owner */\n"
2764 "    uid_t          cuid;        /* Effective UID of creator */\n"
2765 "    gid_t          cgid;        /* Effective GID of creator */\n"
2766 "    unsigned short B<mode>;        /* Permissions */\n"
2767 "    unsigned short __seq;       /* Sequence number */\n"
2768 "};\n"
2769 msgstr ""
2770 "struct ipc_perm {\n"
2771 "    key_t          __key;       /* msgget(2) に与えるキー */\n"
2772 "    uid_t          B<uid>;         /* 所有者の実効 UID */\n"
2773 "    gid_t          B<gid>;         /* 所有者の実効 GID */\n"
2774 "    uid_t          cuid;        /* 作成者の実効 UID */\n"
2775 "    gid_t          cgid;        /* 作成者の実効 GID */\n"
2776 "    unsigned short B<mode>;        /* 許可 */\n"
2777 "    unsigned short __seq;       /* シーケンス番号 */\n"
2778 "};\n"
2779
2780 #. type: Plain text
2781 #: build/C/man2/msgctl.2:101
2782 msgid "Valid values for I<cmd> are:"
2783 msgstr "I<cmd> として有効な値は:"
2784
2785 #. type: TP
2786 #: build/C/man2/msgctl.2:101
2787 #, no-wrap
2788 msgid "B<IPC_STAT>"
2789 msgstr "B<IPC_STAT>"
2790
2791 #. type: Plain text
2792 #: build/C/man2/msgctl.2:110
2793 msgid ""
2794 "Copy information from the kernel data structure associated with I<msqid> "
2795 "into the I<msqid_ds> structure pointed to by I<buf>.  The caller must have "
2796 "read permission on the message queue."
2797 msgstr ""
2798 "I<msqid> に関連づけられたメッセージキューデータ構造体から、ポインター I<buf> "
2799 "が指し示す I<msqid_ds> 構造体に情報をコピーする。 呼び出し側はメッセージ"
2800 "キューに対する読み込み許可を持っていなければならない。"
2801
2802 #. type: TP
2803 #: build/C/man2/msgctl.2:110
2804 #, no-wrap
2805 msgid "B<IPC_SET>"
2806 msgstr "B<IPC_SET>"
2807
2808 #. type: Plain text
2809 #: build/C/man2/msgctl.2:137
2810 msgid ""
2811 "Write the values of some members of the I<msqid_ds> structure pointed to by "
2812 "I<buf> to the kernel data structure associated with this message queue, "
2813 "updating also its I<msg_ctime> member.  The following members of the "
2814 "structure are updated: I<msg_qbytes>, I<msg_perm.uid>, I<msg_perm.gid>, and "
2815 "(the least significant 9 bits of)  I<msg_perm.mode>.  The effective UID of "
2816 "the calling process must match the owner (I<msg_perm.uid>)  or creator "
2817 "(I<msg_perm.cuid>)  of the message queue, or the caller must be privileged.  "
2818 "Appropriate privilege (Linux: the B<CAP_SYS_RESOURCE> capability) is "
2819 "required to raise the I<msg_qbytes> value beyond the system parameter "
2820 "B<MSGMNB>."
2821 msgstr ""
2822 "ポインター I<buf> が指し示す I<msqid_ds> 構造体のメンバーの値を、メッセージ"
2823 "キューに関連づけられた カーネルデータ構造体に書き込み、 I<msg_ctime> メンバー"
2824 "も更新する。 構造体のメンバーのうち、更新されるものを以下に示す: "
2825 "I<msg_qbytes>, I<msg_perm.uid>, I<msg_perm.gid>, I<msg_perm.mode> (の下位 9 "
2826 "ビット)。 呼び出したプロセスの実効ユーザー ID が、メッセージキューの所有者 "
2827 "(I<msg_perm.uid>)  または作成者 (I<msg_perm.cuid>)  と一致するか、呼び出し元"
2828 "が特権を持たなければならない。 I<msg_qbytes> をシステムパラメーターの "
2829 "B<MSGMNB> を超えて設定するには、適切な特権 (Linux では B<CAP_SYS_RESOURCE> "
2830 "ケーパビリティ (capability)) が必要である。"
2831
2832 #. type: TP
2833 #: build/C/man2/msgctl.2:137
2834 #, no-wrap
2835 msgid "B<IPC_RMID>"
2836 msgstr "B<IPC_RMID>"
2837
2838 #. type: Plain text
2839 #: build/C/man2/msgctl.2:151
2840 msgid ""
2841 "Immediately remove the message queue, awakening all waiting reader and "
2842 "writer processes (with an error return and I<errno> set to B<EIDRM>).  The "
2843 "calling process must have appropriate privileges or its effective user ID "
2844 "must be either that of the creator or owner of the message queue.  The third "
2845 "argument to B<msgctl>()  is ignored in this case."
2846 msgstr ""
2847 "メッセージキューをただちに削除する。 同時にその構造体の読み書きの待ち状態に"
2848 "あったプロセスに通知する (エラーが返り、 I<errno> が B<EIDRM> に設定され"
2849 "る)。 呼び出したプロセスが適切な特権を持っているか、 呼び出したプロセスの実効"
2850 "ユーザー ID がメッセージキューの作成者か 所有者の実効ユーザー ID でなければな"
2851 "らない。この場合、 B<msgctl>() の第 3 引き数は無視される。"
2852
2853 #. type: TP
2854 #: build/C/man2/msgctl.2:151
2855 #, no-wrap
2856 msgid "B<IPC_INFO> (Linux-specific)"
2857 msgstr "B<IPC_INFO> (Linux 固有)"
2858
2859 #. type: Plain text
2860 #: build/C/man2/msgctl.2:164
2861 msgid ""
2862 "Return information about system-wide message queue limits and parameters in "
2863 "the structure pointed to by I<buf>.  This structure is of type I<msginfo> "
2864 "(thus, a cast is required), defined in I<E<lt>sys/msg.hE<gt>> if the "
2865 "B<_GNU_SOURCE> feature test macro is defined:"
2866 msgstr ""
2867 "システム全体でのメッセージキューの制限とパラメーターに関する情報を、 I<buf> "
2868 "が指す構造体に入れて返す。 この構造体は I<msginfo> 型である (そのためキャスト"
2869 "が必要である)。 I<msginfo> は B<_GNU_SOURCE> 機能検査マクロが定義された場合"
2870 "に I<E<lt>sys/msg.hE<gt>> で以下のように定義される:"
2871
2872 #. type: Plain text
2873 #: build/C/man2/msgctl.2:188
2874 #, no-wrap
2875 msgid ""
2876 "struct msginfo {\n"
2877 "    int msgpool; /* Size in kibibytes of buffer pool\n"
2878 "                    used to hold message data;\n"
2879 "                    unused within kernel */\n"
2880 "    int msgmap;  /* Maximum number of entries in message\n"
2881 "                    map; unused within kernel */\n"
2882 "    int msgmax;  /* Maximum number of bytes that can be\n"
2883 "                    written in a single message */\n"
2884 "    int msgmnb;  /* Maximum number of bytes that can be\n"
2885 "                    written to queue; used to initialize\n"
2886 "                    msg_qbytes during queue creation\n"
2887 "                    (msgget(2)) */\n"
2888 "    int msgmni;  /* Maximum number of message queues */\n"
2889 "    int msgssz;  /* Message segment size;\n"
2890 "                    unused within kernel */\n"
2891 "    int msgtql;  /* Maximum number of messages on all queues\n"
2892 "                    in system; unused within kernel */\n"
2893 "    unsigned short int msgseg;\n"
2894 "                 /* Maximum number of segments;\n"
2895 "                    unused within kernel */\n"
2896 "};\n"
2897 msgstr ""
2898 "struct msginfo {\n"
2899 "    int msgpool; /* メッセージデータの保持に使用される\n"
2900 "                    バッファープールの大きさ (1024 バイト単位);\n"
2901 "                    カーネル内では未使用 */\n"
2902 "    int msgmap;  /* メッセージマップの最大エントリー数;\n"
2903 "                    カーネル内では未使用 */\n"
2904 "    int msgmax;  /* 一つのメッセージに書き込み可能な\n"
2905 "                    最大バイト数 */\n"
2906 "    int msgmnb;  /* 一つのキューに書き込み可能な最大バイト数;\n"
2907 "                    (msgget(2) での) キュー作成中の msg_qbytes\n"
2908 "                    の初期化に使用される */\n"
2909 "    int msgmni;  /* メッセージキューの数の最大値 */\n"
2910 "    int msgssz;  /* メッセージセグメントのサイズ;\n"
2911 "                    カーネル内では未使用 */\n"
2912 "    int msgtql;  /* システム上の全キューの最大メッセージ数;\n"
2913 "                    カーネル内では未使用 */\n"
2914 "    unsigned short int msgseg;\n"
2915 "                 /* 最大セグメント数; カーネル内では未使用 */\n"
2916 "};\n"
2917
2918 #. type: Plain text
2919 #: build/C/man2/msgctl.2:201
2920 msgid ""
2921 "The I<msgmni>, I<msgmax>, and I<msgmnb> settings can be changed via I</proc> "
2922 "files of the same name; see B<proc>(5)  for details."
2923 msgstr ""
2924 "設定 I<msgmni ,> I<msgmax ,> I<msgmnb> は I</proc> にある同じ名前のファイル経"
2925 "由で変更可能である。 詳しくは B<proc>(5)  を参照。"
2926
2927 #. type: TP
2928 #: build/C/man2/msgctl.2:201
2929 #, no-wrap
2930 msgid "B<MSG_INFO> (Linux-specific)"
2931 msgstr "B<MSG_INFO> (Linux 固有)"
2932
2933 #. type: Plain text
2934 #: build/C/man2/msgctl.2:218
2935 msgid ""
2936 "Return a I<msginfo> structure containing the same information as for "
2937 "B<IPC_INFO>, except that the following fields are returned with information "
2938 "about system resources consumed by message queues: the I<msgpool> field "
2939 "returns the number of message queues that currently exist on the system; the "
2940 "I<msgmap> field returns the total number of messages in all queues on the "
2941 "system; and the I<msgtql> field returns the total number of bytes in all "
2942 "messages in all queues on the system."
2943 msgstr ""
2944 "B<IPC_INFO> のときと同じ情報を格納した I<msginfo> 構造体を返す。 但し、以下の"
2945 "フィールドにはメッセージキューが 消費しているシステム資源に関する情報が格納さ"
2946 "れる点が異なる。 I<msgpool> フィールドは現在システム上に存在するメッセージ"
2947 "キューの数を返す。 I<msgmap> フィールドはシステム上の全てのキューに入っている"
2948 "メッセージ総数を返す。 I<msgtql> フィールドはシステム上の全てのキューに入って"
2949 "いる全メッセージの 総バイト数を返す。"
2950
2951 #. type: TP
2952 #: build/C/man2/msgctl.2:218
2953 #, no-wrap
2954 msgid "B<MSG_STAT> (Linux-specific)"
2955 msgstr "B<MSG_STAT> (Linux 固有)"
2956
2957 #. type: Plain text
2958 #: build/C/man2/msgctl.2:229
2959 msgid ""
2960 "Return a I<msqid_ds> structure as for B<IPC_STAT>.  However, the I<msqid> "
2961 "argument is not a queue identifier, but instead an index into the kernel's "
2962 "internal array that maintains information about all message queues on the "
2963 "system."
2964 msgstr ""
2965 "B<IPC_STAT> と同じく I<msqid_ds> 構造体を返す。 但し、 I<msqid> 引き数は、"
2966 "キュー識別子ではなく、システム上の全てのメッセージキュー に関する情報を管理す"
2967 "るカーネルの内部配列へのインデックスである。"
2968
2969 #. type: Plain text
2970 #: build/C/man2/msgctl.2:250
2971 msgid ""
2972 "On success, B<IPC_STAT>, B<IPC_SET>, and B<IPC_RMID> return 0.  A successful "
2973 "B<IPC_INFO> or B<MSG_INFO> operation returns the index of the highest used "
2974 "entry in the kernel's internal array recording information about all message "
2975 "queues.  (This information can be used with repeated B<MSG_STAT> operations "
2976 "to obtain information about all queues on the system.)  A successful "
2977 "B<MSG_STAT> operation returns the identifier of the queue whose index was "
2978 "given in I<msqid>."
2979 msgstr ""
2980 "成功すると、 B<IPC_STAT>, B<IPC_SET>, B<IPC_RMID> は 0 を返す。 B<IPC_INFO> "
2981 "と B<MSG_INFO> 操作は、成功すると、全てのメッセージキューに関する情報を 管理"
2982 "しているカーネルの内部配列の使用中エントリーのインデックスの うち最大値を返"
2983 "す (この情報は、システムの全てのメッセージキューに関する情報を 取得するため"
2984 "に、 B<MSG_STAT> 操作を繰り返し実行する際に使用できる)。 B<MSG_STAT> 操作は、"
2985 "成功すると、 I<msqid> で指定されたインデックスを持つメッセージキューの識別子"
2986 "を返す。"
2987
2988 #. type: Plain text
2989 #: build/C/man2/msgctl.2:254
2990 msgid "On error, -1 is returned with I<errno> indicating the error."
2991 msgstr "エラーの場合は -1 を返し、 I<errno> を適切に設定する。"
2992
2993 #. type: Plain text
2994 #: build/C/man2/msgctl.2:258
2995 msgid "On failure, I<errno> is set to one of the following:"
2996 msgstr "失敗した場合、 I<errno> は以下の値の中のどれか一つに設定される:"
2997
2998 #. type: Plain text
2999 #: build/C/man2/msgctl.2:271
3000 msgid ""
3001 "The argument I<cmd> is equal to B<IPC_STAT> or B<MSG_STAT>, but the calling "
3002 "process does not have read permission on the message queue I<msqid>, and "
3003 "does not have the B<CAP_IPC_OWNER> capability."
3004 msgstr ""
3005 "引き数 I<cmd> が B<IPC_STAT> または B<MSG_STAT> に等しいが、呼び出したプロセ"
3006 "スがメッセージキュー I<msqid> に対する読み込み許可を持っておらず、かつ "
3007 "B<CAP_IPC_OWNER> ケーパビリティを持っていない。"
3008
3009 #. type: TP
3010 #: build/C/man2/msgctl.2:271 build/C/man2/msgop.2:372 build/C/man2/msgop.2:425
3011 #, no-wrap
3012 msgid "B<EFAULT>"
3013 msgstr "B<EFAULT>"
3014
3015 #. type: Plain text
3016 #: build/C/man2/msgctl.2:282
3017 msgid ""
3018 "The argument I<cmd> has the value B<IPC_SET> or B<IPC_STAT>, but the address "
3019 "pointed to by I<buf> isn't accessible."
3020 msgstr ""
3021 "引き数 I<cmd> が B<IPC_SET> か B<IPC_STAT> で、ポインター I<buf> で指されてい"
3022 "るアドレスがアクセス可能でない。"
3023
3024 #. type: TP
3025 #: build/C/man2/msgctl.2:282 build/C/man2/msgop.2:377 build/C/man2/msgop.2:430
3026 #, no-wrap
3027 msgid "B<EIDRM>"
3028 msgstr "B<EIDRM>"
3029
3030 #. type: Plain text
3031 #: build/C/man2/msgctl.2:285 build/C/man2/msgop.2:380
3032 msgid "The message queue was removed."
3033 msgstr "メッセージキューが削除された。"
3034
3035 #. type: Plain text
3036 #: build/C/man2/msgctl.2:296
3037 msgid ""
3038 "Invalid value for I<cmd> or I<msqid>.  Or: for a B<MSG_STAT> operation, the "
3039 "index value specified in I<msqid> referred to an array slot that is "
3040 "currently unused."
3041 msgstr ""
3042 "I<cmd> または I<msqid> に不正な値が設定された。 もしくは、 B<MSG_STAT> 操作の"
3043 "場合に、 I<msqid> で指定されたインデックス値が現在未使用の配列のスロットを参"
3044 "照いていた。"
3045
3046 #. type: TP
3047 #: build/C/man2/msgctl.2:296 build/C/man2/msgctl.2:314
3048 #, no-wrap
3049 msgid "B<EPERM>"
3050 msgstr "B<EPERM>"
3051
3052 #. type: Plain text
3053 #: build/C/man2/msgctl.2:314
3054 msgid ""
3055 "The argument I<cmd> has the value B<IPC_SET> or B<IPC_RMID>, but the "
3056 "effective user ID of the calling process is not the creator (as found in "
3057 "I<msg_perm.cuid>)  or the owner (as found in I<msg_perm.uid>)  of the "
3058 "message queue, and the caller is not privileged (Linux: does not have the "
3059 "B<CAP_SYS_ADMIN> capability)."
3060 msgstr ""
3061 "引き数 I<cmd> が B<IPC_SET> か B<IPC_RMID> であるが、呼び出したプロセスの実効"
3062 "ユーザー ID がメッセージキューの (I<msg_perm.cuid> として見つかる) 作成者 と "
3063 "(I<msg_perm.uid> として見つかる) 所有者のいずれでもなく、 かつ呼び出し者に特"
3064 "権がない (Linux では B<CAP_SYS_ADMIN> ケーパビリティがない)。"
3065
3066 #. type: Plain text
3067 #: build/C/man2/msgctl.2:325
3068 msgid ""
3069 "An attempt (B<IPC_SET>)  was made to increase I<msg_qbytes> beyond the "
3070 "system parameter B<MSGMNB>, but the caller is not privileged (Linux: does "
3071 "not have the B<CAP_SYS_RESOURCE> capability)."
3072 msgstr ""
3073 "B<IPC_SET> で I<msg_qbytes> をシステムパラメーター B<MSGMNB> より大きな値に設"
3074 "定しようとしたが、呼び出し元が特権を持っていなかった (Linux では、 "
3075 "B<CAP_SYS_RESOURCE> ケーパビリティを持っていなかった)。"
3076
3077 #. type: Plain text
3078 #: build/C/man2/msgctl.2:328 build/C/man2/msgget.2:184
3079 #: build/C/man2/msgop.2:484
3080 msgid "SVr4, POSIX.1-2001."
3081 msgstr "SVr4, POSIX.1-2001."
3082
3083 #.  Like Linux, the FreeBSD man pages still document
3084 #.  the inclusion of these header files.
3085 #. type: Plain text
3086 #: build/C/man2/msgctl.2:341 build/C/man2/msgget.2:197
3087 #: build/C/man2/msgop.2:507
3088 msgid ""
3089 "The inclusion of I<E<lt>sys/types.hE<gt>> and I<E<lt>sys/ipc.hE<gt>> isn't "
3090 "required on Linux or by any version of POSIX.  However, some old "
3091 "implementations required the inclusion of these header files, and the SVID "
3092 "also documented their inclusion.  Applications intended to be portable to "
3093 "such old systems may need to include these header files."
3094 msgstr ""
3095 "Linux や POSIX の全てのバージョンでは、 I<E<lt>sys/types.hE<gt>> と "
3096 "I<E<lt>sys/ipc.hE<gt>> のインクルードは必要ない。しかしながら、いくつかの古い"
3097 "実装ではこれらのヘッダーファイルのインクルードが必要であり、 SVID でもこれら"
3098 "のインクルードをするように記載されている。このような古いシステムへの移植性を"
3099 "意図したアプリケーションではこれらのファイルをインクルードする必要があるかも"
3100 "しれない。"
3101
3102 #. type: Plain text
3103 #: build/C/man2/msgctl.2:353
3104 msgid ""
3105 "The B<IPC_INFO>, B<MSG_STAT> and B<MSG_INFO> operations are used by the "
3106 "B<ipcs>(1)  program to provide information on allocated resources.  In the "
3107 "future these may modified or moved to a I</proc> filesystem interface."
3108 msgstr ""
3109 "B<IPC_INFO>, B<MSG_STAT>, B<MSG_INFO> 操作は、 B<ipcs>(1)  プログラムで割り当"
3110 "て済の資源に関する情報を提供するために 使用されている。将来、これらの操作は変"
3111 "更されたり、 I</proc> ファイルシステムのインターフェースに移動されるかもしれ"
3112 "ない。"
3113
3114 #. type: Plain text
3115 #: build/C/man2/msgctl.2:367
3116 msgid ""
3117 "Various fields in the I<struct msqid_ds> were typed as I<short> under Linux "
3118 "2.2 and have become I<long> under Linux 2.4.  To take advantage of this, a "
3119 "recompilation under glibc-2.1.91 or later should suffice.  (The kernel "
3120 "distinguishes old and new calls by an B<IPC_64> flag in I<cmd>.)"
3121 msgstr ""
3122 "I<struct msqid_ds> 内の多くのフィールドは、 Linux 2.2 では I<short> だった"
3123 "が、Linux 2.4 では I<long> になった。 この利点を生かすには、glibc-2.1.91 以降"
3124 "の環境下で 再コンパイルすれば十分である。 (カーネルは新しい形式の呼び出しと古"
3125 "い形式の呼び出しを I<cmd> 内の B<IPC_64> フラグで区別する。)"
3126
3127 #. type: Plain text
3128 #: build/C/man2/msgctl.2:374
3129 msgid ""
3130 "B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<capabilities>(7), "
3131 "B<mq_overview>(7), B<svipc>(7)"
3132 msgstr ""
3133 "B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<capabilities>(7), "
3134 "B<mq_overview>(7), B<svipc>(7)"
3135
3136 #. type: TH
3137 #: build/C/man2/msgget.2:35
3138 #, no-wrap
3139 msgid "MSGGET"
3140 msgstr "MSGGET"
3141
3142 #. type: TH
3143 #: build/C/man2/msgget.2:35
3144 #, no-wrap
3145 msgid "2014-04-30"
3146 msgstr "2014-04-30"
3147
3148 #. type: Plain text
3149 #: build/C/man2/msgget.2:38
3150 msgid "msgget - get a System V message queue identifier"
3151 msgstr "msgget - System V メッセージキュー識別子を取得する"
3152
3153 #. type: Plain text
3154 #: build/C/man2/msgget.2:45
3155 #, no-wrap
3156 msgid "B<int msgget(key_t >I<key>B<, int >I<msgflg>B<);>\n"
3157 msgstr "B<int msgget(key_t >I<key>B<, int >I<msgflg>B<);>\n"
3158
3159 #. type: Plain text
3160 #: build/C/man2/msgget.2:67
3161 msgid ""
3162 "The B<msgget>()  system call returns the System\\ V message queue identifier "
3163 "associated with the value of the I<key> argument.  A new message queue is "
3164 "created if I<key> has the value B<IPC_PRIVATE> or I<key> isn't "
3165 "B<IPC_PRIVATE>, no message queue with the given key I<key> exists, and "
3166 "B<IPC_CREAT> is specified in I<msgflg>."
3167 msgstr ""
3168 "B<msgget>()  システムコールは I<key> 引き数の値に対応する System\\ V メッセー"
3169 "ジキューの識別子を返す。 I<key> の値が B<IPC_PRIVATE> の場合、または I<key> "
3170 "が B<IPC_PRIVATE> でなくても、 I<key> に対応するメッセージキューが存在せず、 "
3171 "I<msgflg> に B<IPC_CREAT> が指定されている場合、 新しいメッセージキューが作成"
3172 "される。"
3173
3174 #. type: Plain text
3175 #: build/C/man2/msgget.2:86
3176 msgid ""
3177 "If I<msgflg> specifies both B<IPC_CREAT> and B<IPC_EXCL> and a message queue "
3178 "already exists for I<key>, then B<msgget>()  fails with I<errno> set to "
3179 "B<EEXIST>.  (This is analogous to the effect of the combination B<O_CREAT | "
3180 "O_EXCL> for B<open>(2).)"
3181 msgstr ""
3182 "I<msgflg> に B<IPC_CREAT> と B<IPC_EXCL> の両方が指定された場合、 I<key> に対"
3183 "応するメッセージキューが既に存在すると、 B<msgget>()  は失敗し、 I<errno> に "
3184 "B<EEXIST> が設定される。 (これは B<open>(2)  に B<O_CREAT | O_EXCL> を指定し"
3185 "た場合の動作と同じである)"
3186
3187 #. type: Plain text
3188 #: build/C/man2/msgget.2:96
3189 msgid ""
3190 "Upon creation, the least significant bits of the argument I<msgflg> define "
3191 "the permissions of the message queue.  These permission bits have the same "
3192 "format and semantics as the permissions specified for the I<mode> argument "
3193 "of B<open>(2).  (The execute permissions are not used.)"
3194 msgstr ""
3195 "メッセージキューの作成時に、 I<msgflg> 引き数の下位 9 ビットは、 そのメッセー"
3196 "ジキューのアクセス許可の定義として使用される。 これらの許可ビットは "
3197 "B<open>(2)  の引き数 I<mode> と同じ形式で同じ意味である。 や B<creat>(2)  シ"
3198 "ステムコールのアクセス許可パラメーターと同じ形式で、同じ意味を持つ。 (但し、"
3199 "実行 (execute) 許可は使用されない。)"
3200
3201 #. type: Plain text
3202 #: build/C/man2/msgget.2:103
3203 msgid ""
3204 "If a new message queue is created, then its associated data structure "
3205 "I<msqid_ds> (see B<msgctl>(2))  is initialized as follows:"
3206 msgstr ""
3207 "新規のメッセージキューを作成する際、 B<msgget>()  システムコールはメッセージ"
3208 "キューのデータ構造体 I<msqid_ds> を以下のように初期化する (I<msqid_ds> につい"
3209 "ては B<msgctl>(2)  を参照):"
3210
3211 #. type: Plain text
3212 #: build/C/man2/msgget.2:108
3213 msgid ""
3214 "I<msg_perm.cuid> and I<msg_perm.uid> are set to the effective user ID of the "
3215 "calling process."
3216 msgstr ""
3217 "I<msg_perm.cuid> と I<msg_perm.uid> に呼び出し元プロセスの実効 (effective) "
3218 "ユーザーID を設定する。"
3219
3220 #. type: Plain text
3221 #: build/C/man2/msgget.2:113
3222 msgid ""
3223 "I<msg_perm.cgid> and I<msg_perm.gid> are set to the effective group ID of "
3224 "the calling process."
3225 msgstr ""
3226 "I<msg_perm.cgid> と I<msg_perm.gid> に呼び出し元プロセスの実効 (effective) グ"
3227 "ループID を設定する。"
3228
3229 #. type: Plain text
3230 #: build/C/man2/msgget.2:118
3231 msgid ""
3232 "The least significant 9 bits of I<msg_perm.mode> are set to the least "
3233 "significant 9 bits of I<msgflg>."
3234 msgstr ""
3235 "I<msg_perm.mode> の下位 9 ビットは I<msgflg> の下位 9 ビットを設定する。"
3236
3237 #. type: Plain text
3238 #: build/C/man2/msgget.2:126
3239 msgid ""
3240 "I<msg_qnum>, I<msg_lspid>, I<msg_lrpid>, I<msg_stime>, and I<msg_rtime> are "
3241 "set to 0."
3242 msgstr ""
3243 "I<msg_qnum>, I<msg_lspid>, I<msg_lrpid>, I<msg_stime>, I<msg_rtime> に 0 を設"
3244 "定される。"
3245
3246 #. type: Plain text
3247 #: build/C/man2/msgget.2:129
3248 msgid "I<msg_ctime> is set to the current time."
3249 msgstr "I<msg_ctime> に現在の時刻を設定する。"
3250
3251 #. type: Plain text
3252 #: build/C/man2/msgget.2:133
3253 msgid "I<msg_qbytes> is set to the system limit B<MSGMNB>."
3254 msgstr ""
3255 "I<msg_qbytes> に、システムで決められたメッセージキューの最大サイズ B<MSGMNB> "
3256 "を設定する。"
3257
3258 #. type: Plain text
3259 #: build/C/man2/msgget.2:137
3260 msgid ""
3261 "If the message queue already exists the permissions are verified, and a "
3262 "check is made to see if it is marked for destruction."
3263 msgstr ""
3264 "メッセージキューがすでに存在する場合は、アクセス許可の検査と、 破棄 "
3265 "(destruction) マークがないかの確認が行われる。"
3266
3267 #. type: Plain text
3268 #: build/C/man2/msgget.2:143
3269 msgid ""
3270 "If successful, the return value will be the message queue identifier (a "
3271 "nonnegative integer), otherwise -1 with I<errno> indicating the error."
3272 msgstr ""
3273 "成功した場合、返り値はメッセージキュー識別子 (非負の整数) となる。 失敗した場"
3274 "合は -1 が返され、 I<errno> にそのエラーが示される。"
3275
3276 #. type: Plain text
3277 #: build/C/man2/msgget.2:147
3278 msgid "On failure, I<errno> is set to one of the following values:"
3279 msgstr "失敗した場合、 I<errno> に以下の値のいずれか一つが設定される:"
3280
3281 #. type: Plain text
3282 #: build/C/man2/msgget.2:155
3283 msgid ""
3284 "A message queue exists for I<key>, but the calling process does not have "
3285 "permission to access the queue, and does not have the B<CAP_IPC_OWNER> "
3286 "capability."
3287 msgstr ""
3288 "I<key> に対応するメッセージキューは存在するが、 呼び出し元プロセスはその"
3289 "キューに対するアクセス許可がなく、 B<CAP_IPC_OWNER> ケーパビリティも持ってい"
3290 "ない。"
3291
3292 #. type: Plain text
3293 #: build/C/man2/msgget.2:164
3294 msgid ""
3295 "B<IPC_CREAT> and B<IPC_EXCL> were specified in I<msgflg>, but a message "
3296 "queue already exists for I<key>."
3297 msgstr ""
3298 "I<msgflg> に B<IPC_CREAT> と B<IPC_EXCL> が指定されたが、 I<key> に対応する"
3299 "メッセージキューがすでに存在する。"
3300
3301 #. type: Plain text
3302 #: build/C/man2/msgget.2:172
3303 msgid ""
3304 "No message queue exists for I<key> and I<msgflg> did not specify "
3305 "B<IPC_CREAT>."
3306 msgstr ""
3307 "I<key> に対応するメッセージキューが存在せず、 I<msgflg> に B<IPC_CREAT> が指"
3308 "定されていなかった。"
3309
3310 #. type: Plain text
3311 #: build/C/man2/msgget.2:176
3312 msgid ""
3313 "A message queue has to be created but the system does not have enough memory "
3314 "for the new data structure."
3315 msgstr ""
3316 "メッセージキューを作成しようとしたが、新しいデータ構造体を作成 するのに十分な"
3317 "メモリーがシステムに存在しない。"
3318
3319 #. type: Plain text
3320 #: build/C/man2/msgget.2:182
3321 msgid ""
3322 "A message queue has to be created but the system limit for the maximum "
3323 "number of message queues (B<MSGMNI>)  would be exceeded."
3324 msgstr ""
3325 "メッセージキューを作成しようとしたが、作成すると システム全体のメッセージ"
3326 "キュー数の最大値 (B<MSGMNI>)  を超えてしまう。"
3327
3328 #. type: Plain text
3329 #: build/C/man2/msgget.2:207
3330 msgid ""
3331 "B<IPC_PRIVATE> isn't a flag field but a I<key_t> type.  If this special "
3332 "value is used for I<key>, the system call ignores everything but the least "
3333 "significant 9 bits of I<msgflg> and creates a new message queue (on success)."
3334 msgstr ""
3335 "B<IPC_PRIVATE> はフラグではなく、 I<key_t> 型である。 この特別な値が I<key> "
3336 "として使用された場合、 B<msgget>()  システムコールは I<msgflg> の下位 9 ビッ"
3337 "ト以外の全てを無視して (成功した場合は) 新しいメッセージキューを作成する。"
3338
3339 #. type: Plain text
3340 #: build/C/man2/msgget.2:211
3341 msgid ""
3342 "The following is a system limit on message queue resources affecting a "
3343 "B<msgget>()  call:"
3344 msgstr ""
3345 "B<msgget>()  システムコールに影響を及ぼすメッセージキューの資源の システムと"
3346 "しての制限を以下に示す:"
3347
3348 #. type: TP
3349 #: build/C/man2/msgget.2:211
3350 #, no-wrap
3351 msgid "B<MSGMNI>"
3352 msgstr "B<MSGMNI>"
3353
3354 #. type: Plain text
3355 #: build/C/man2/msgget.2:217
3356 msgid ""
3357 "System-wide limit on the number of message queues: policy dependent (on "
3358 "Linux, this limit can be read and modified via I</proc/sys/kernel/msgmni>)."
3359 msgstr ""
3360 "システム全体のメッセージキュー数の上限値: 方針依存 (Linux では、この制限値は "
3361 "I</proc/sys/kernel/msgmni> 経由で参照したり、変更したりできる)。"
3362
3363 #. type: SS
3364 #: build/C/man2/msgget.2:217
3365 #, no-wrap
3366 msgid "Linux notes"
3367 msgstr "Linux での注意"
3368
3369 #. type: Plain text
3370 #: build/C/man2/msgget.2:223
3371 msgid ""
3372 "Until version 2.3.20, Linux would return B<EIDRM> for a B<msgget>()  on a "
3373 "message queue scheduled for deletion."
3374 msgstr ""
3375 "Linux 2.3.20 までは、削除が予定されているメッセージキューに対して "
3376 "B<msgget>()  を行うと B<EIDRM> がエラーとして返されるようになっていた。"
3377
3378 #. type: Plain text
3379 #: build/C/man2/msgget.2:229
3380 msgid ""
3381 "The name choice B<IPC_PRIVATE> was perhaps unfortunate, B<IPC_NEW> would "
3382 "more clearly show its function."
3383 msgstr ""
3384 "B<IPC_PRIVATE> という名前を選んだのはおそらく失敗であろう。 B<IPC_NEW> の方が"
3385 "より明確にその機能を表しているだろう。"
3386
3387 #. type: Plain text
3388 #: build/C/man2/msgget.2:237
3389 msgid ""
3390 "B<msgctl>(2), B<msgrcv>(2), B<msgsnd>(2), B<ftok>(3), B<capabilities>(7), "
3391 "B<mq_overview>(7), B<svipc>(7)"
3392 msgstr ""
3393 "B<msgctl>(2), B<msgrcv>(2), B<msgsnd>(2), B<ftok>(3), B<capabilities>(7), "
3394 "B<mq_overview>(7), B<svipc>(7)"
3395
3396 #. type: TH
3397 #: build/C/man2/msgop.2:41
3398 #, no-wrap
3399 msgid "MSGOP"
3400 msgstr "MSGOP"
3401
3402 #. type: TH
3403 #: build/C/man2/msgop.2:41
3404 #, no-wrap
3405 msgid "2014-08-19"
3406 msgstr "2014-08-19"
3407
3408 #. type: Plain text
3409 #: build/C/man2/msgop.2:44
3410 msgid "msgrcv, msgsnd - System V message queue operations"
3411 msgstr "msgrcv, msgsnd - System V メッセージキュー操作"
3412
3413 #. type: Plain text
3414 #: build/C/man2/msgop.2:52
3415 #, no-wrap
3416 msgid "B<int msgsnd(int >I<msqid>B<, const void *>I<msgp>B<, size_t >I<msgsz>B<, int >I<msgflg>B<);>\n"
3417 msgstr "B<int msgsnd(int >I<msqid>B<, const void *>I<msgp>B<, size_t >I<msgsz>B<, int >I<msgflg>B<);>\n"
3418
3419 #. type: Plain text
3420 #: build/C/man2/msgop.2:56
3421 #, no-wrap
3422 msgid ""
3423 "B<ssize_t msgrcv(int >I<msqid>B<, void *>I<msgp>B<, size_t >I<msgsz>B<, long >I<msgtyp>B<,>\n"
3424 "B<               int >I<msgflg>B<);>\n"
3425 msgstr ""
3426 "B<ssize_t msgrcv(int >I<msqid>B<, void *>I<msgp>B<, size_t >I<msgsz>B<, long >I<msgtyp>B<,>\n"
3427 "B<               int >I<msgflg>B<);>\n"
3428
3429 #. type: Plain text
3430 #: build/C/man2/msgop.2:66
3431 msgid ""
3432 "The B<msgsnd>()  and B<msgrcv>()  system calls are used, respectively, to "
3433 "send messages to, and receive messages from, a System\\ V message queue.  "
3434 "The calling process must have write permission on the message queue in order "
3435 "to send a message, and read permission to receive a message."
3436 msgstr ""
3437 "システムコール B<msgsnd>()  と B<msgrcv>()  はそれぞれ、 System\\ V メッセー"
3438 "ジキューへのメッセージの送信と、 メッセージの受信に使用される。呼び出し元プロ"
3439 "セスは、 メッセージを送信するためにはメッセージキューに対する書き込み許可"
3440 "を、 メッセージを受信するためには読み出し許可を持っていなければならない。"
3441
3442 #. type: Plain text
3443 #: build/C/man2/msgop.2:71
3444 msgid ""
3445 "The I<msgp> argument is a pointer to a caller-defined structure of the "
3446 "following general form:"
3447 msgstr ""
3448 "呼び出し元プロセスは以下に示す構造体を用意し、この構造体への ポインターを "
3449 "I<msgp> 引き数として渡す。"
3450
3451 #. type: Plain text
3452 #: build/C/man2/msgop.2:78
3453 #, no-wrap
3454 msgid ""
3455 "struct msgbuf {\n"
3456 "    long mtype;       /* message type, must be E<gt> 0 */\n"
3457 "    char mtext[1];    /* message data */\n"
3458 "};\n"
3459 msgstr ""
3460 "struct msgbuf {\n"
3461 "    long mtype;       /* message type, must be E<gt> 0 */\n"
3462 "    char mtext[1];    /* message data */\n"
3463 "};\n"
3464
3465 #. type: Plain text
3466 #: build/C/man2/msgop.2:97
3467 msgid ""
3468 "The I<mtext> field is an array (or other structure) whose size is specified "
3469 "by I<msgsz>, a nonnegative integer value.  Messages of zero length (i.e., no "
3470 "I<mtext> field) are permitted.  The I<mtype> field must have a strictly "
3471 "positive integer value.  This value can be used by the receiving process for "
3472 "message selection (see the description of B<msgrcv>()  below)."
3473 msgstr ""
3474 "I<mtext> フィールドは配列 (または他の構造体) で、その大きさは 非負の整数であ"
3475 "る I<msgsz> で指定される。 長さ 0 のメッセージ (つまり I<mtext> フィールドが"
3476 "ないメッセージ) も認められている。 B<mtype> フィールドは厳密に正の整数でなけ"
3477 "ればならない。 この値は、メッセージを受信するプロセスでメッセージを選択するた"
3478 "めに 使用される (下記の B<msgrcv>()  の説明を参照のこと)。"
3479
3480 #. type: SS
3481 #: build/C/man2/msgop.2:97
3482 #, no-wrap
3483 msgid "msgsnd()"
3484 msgstr "msgsnd()"
3485
3486 #. type: Plain text
3487 #: build/C/man2/msgop.2:105
3488 msgid ""
3489 "The B<msgsnd>()  system call appends a copy of the message pointed to by "
3490 "I<msgp> to the message queue whose identifier is specified by I<msqid>."
3491 msgstr ""
3492 "B<msgsnd>()  システムコールは I<msgp> 引き数で指定されたメッセージのコピーを "
3493 "I<msqid> で指定された識別子を持つメッセージキューへ追加する。"
3494
3495 #. type: Plain text
3496 #: build/C/man2/msgop.2:118
3497 msgid ""
3498 "If sufficient space is available in the queue, B<msgsnd>()  succeeds "
3499 "immediately.  The queue capacity is governed by the I<msg_qbytes> field in "
3500 "the associated data structure for the message queue.  During queue creation "
3501 "this field is initialized to B<MSGMNB> bytes, but this limit can be modified "
3502 "using B<msgctl>(2).  A message queue is considered to be full if either of "
3503 "the following conditions is true:"
3504 msgstr ""
3505 "キューに十分な空き容量がある場合、 B<msgsnd>()  は直ちに成功する。 キューの容"
3506 "量は、メッセージキューのデータ構造体の I<msg_qbytes> フィールドで制御され"
3507 "る。 キュー作成時にこのフィールドは B<MSGMNB> に初期化されるが、この制限は "
3508 "B<msgctl>(2)  を使って変更できる。 次のいずれかの条件が成立する場合に、メッ"
3509 "セージキューは一杯と判断される。"
3510
3511 #. type: Plain text
3512 #: build/C/man2/msgop.2:123
3513 msgid ""
3514 "Adding a new message to the queue would cause the total number of bytes in "
3515 "the queue to exceed the queue's maximum size (the I<msg_qbytes> field)."
3516 msgstr ""
3517 "新しいメッセージをそのキューに追加すると、 そのキューの全バイト数がキューの最"
3518 "大サイズ (I<msg_qbytes> フィールド) を超過してしまう場合。"
3519
3520 #. type: Plain text
3521 #: build/C/man2/msgop.2:132
3522 msgid ""
3523 "Adding another message to the queue would cause the total number of messages "
3524 "in the queue to exceed the queue's maximum size (the I<msg_qbytes> field).  "
3525 "This check is necessary to prevent an unlimited number of zero-length "
3526 "messages being placed on the queue.  Although such messages contain no data, "
3527 "they nevertheless consume (locked) kernel memory."
3528 msgstr ""
3529 "そのキューにもう一つメッセージを追加すると、 そのキューが全メッセージ数が"
3530 "キューの最大サイズ (I<msg_qbytes> フィールド) を超過してしまう場合。 この"
3531 "チェックは、無限個の長さ 0 のメッセージをそのキューに追加するのを防ぐために必"
3532 "要である。 長さ 0 のメッセージはデータを含まないが、 (ロックされた) カーネル"
3533 "メモリーを消費するからである。"
3534
3535 #. type: Plain text
3536 #: build/C/man2/msgop.2:143
3537 msgid ""
3538 "If insufficient space is available in the queue, then the default behavior "
3539 "of B<msgsnd>()  is to block until space becomes available.  If B<IPC_NOWAIT> "
3540 "is specified in I<msgflg>, then the call instead fails with the error "
3541 "B<EAGAIN>."
3542 msgstr ""
3543 "そのキューに十分な領域がない場合、 デフォルトの動作では、 必要な領域ができる"
3544 "まで B<msgsnd>() は停止 (block) する。 I<msgflg> に B<IPC_NOWAIT> が指定され"
3545 "た場合、 B<msgsnd>() はエラー B<EAGAIN> で失敗する。"
3546
3547 #. type: Plain text
3548 #: build/C/man2/msgop.2:147
3549 msgid "A blocked B<msgsnd>()  call may also fail if:"
3550 msgstr "停止している B<msgsnd>()  は以下の場合にも失敗する。"
3551
3552 #. type: Plain text
3553 #: build/C/man2/msgop.2:154
3554 msgid ""
3555 "the queue is removed, in which case the system call fails with I<errno> set "
3556 "to B<EIDRM>; or"
3557 msgstr "キューが削除された。 この場合、 I<errno> は B<EIDRM> に設定される。"
3558
3559 #. type: Plain text
3560 #: build/C/man2/msgop.2:166
3561 msgid ""
3562 "a signal is caught, in which case the system call fails with I<errno> set to "
3563 "B<EINTR>;B<see> B<signal>(7).  (B<msgsnd>()  is never automatically "
3564 "restarted after being interrupted by a signal handler, regardless of the "
3565 "setting of the B<SA_RESTART> flag when establishing a signal handler.)"
3566 msgstr ""
3567 "シグナルが捕捉された。 この場合、 I<errno> は B<EINTR> に設定される。 "
3568 "B<signal>(7)  参照。 (B<msgsnd>()  は、たとえシグナルハンドラーの設定時に "
3569 "B<SA_RESTART> を指定していたとしても、シグナルハンドラーによって割り込まれた"
3570 "後で 自動的に再スタートすることは決してない。)"
3571
3572 #. type: Plain text
3573 #: build/C/man2/msgop.2:169 build/C/man2/msgop.2:330
3574 msgid ""
3575 "Upon successful completion the message queue data structure is updated as "
3576 "follows:"
3577 msgstr ""
3578 "正常に終了した場合、メッセージキューのデータ構造体は以下のように 更新される:"
3579
3580 #. type: Plain text
3581 #: build/C/man2/msgop.2:172
3582 msgid "I<msg_lspid> is set to the process ID of the calling process."
3583 msgstr "I<msg_lspid> には呼び出し元プロセスのプロセス ID が設定される。"
3584
3585 #. type: Plain text
3586 #: build/C/man2/msgop.2:175
3587 msgid "I<msg_qnum> is incremented by 1."
3588 msgstr "I<msg_qnum> は 1 増加する。"
3589
3590 #. type: Plain text
3591 #: build/C/man2/msgop.2:178
3592 msgid "I<msg_stime> is set to the current time."
3593 msgstr "I<msg_stime> には現在時刻が設定される。"
3594
3595 #. type: SS
3596 #: build/C/man2/msgop.2:178
3597 #, no-wrap
3598 msgid "msgrcv()"
3599 msgstr "msgrcv()"
3600
3601 #. type: Plain text
3602 #: build/C/man2/msgop.2:186
3603 msgid ""
3604 "The B<msgrcv>()  system call removes a message from the queue specified by "
3605 "I<msqid> and places it in the buffer pointed to by I<msgp>."
3606 msgstr ""
3607 "B<msgrcv>()  システムコールは I<msqid> で指定されたキューからメッセージを削除"
3608 "し、 I<msgp> で指定されたバッファーにそのメッセージを格納する。"
3609
3610 #. type: Plain text
3611 #: build/C/man2/msgop.2:212
3612 msgid ""
3613 "The argument I<msgsz> specifies the maximum size in bytes for the member "
3614 "I<mtext> of the structure pointed to by the I<msgp> argument.  If the "
3615 "message text has length greater than I<msgsz>, then the behavior depends on "
3616 "whether B<MSG_NOERROR> is specified in I<msgflg>.  If B<MSG_NOERROR> is "
3617 "specified, then the message text will be truncated (and the truncated part "
3618 "will be lost); if B<MSG_NOERROR> is not specified, then the message isn't "
3619 "removed from the queue and the system call fails returning -1 with I<errno> "
3620 "set to B<E2BIG>."
3621 msgstr ""
3622 "I<msgsz> 引き数には I<msgp> 引き数で指定された構造体の I<mtext> メンバーの最"
3623 "大のバイト数を指定する。 メッセージのテキストの長さが I<msgsz> より大きい場合"
3624 "の動作は、 I<msgflg> に B<MSG_NOERROR> が指定されているかどうかで決まる。 "
3625 "B<MSG_NOERROR> が指定されていれば、メッセージのテキストは切り詰められる (切り"
3626 "捨てられた部分は失われる)。 B<MSG_NOERROR> が指定されていなければ、メッセージ"
3627 "はキューから削除されず、 システムコールは -1 を返して失敗し、 I<errno> に "
3628 "B<E2BIG> が設定される。"
3629
3630 #. type: Plain text
3631 #: build/C/man2/msgop.2:221
3632 msgid ""
3633 "Unless B<MSG_COPY> is specified in I<msgflg> (see below), the I<msgtyp> "
3634 "argument specifies the type of message requested, as follows:"
3635 msgstr ""
3636 "B<MSG_COPY> が I<msgflg> に指定されていない場合 (下記参照)、 I<msgtyp> 引き数"
3637 "には要求するメッセージの型を指定する。 型は以下のように指定する:"
3638
3639 #. type: Plain text
3640 #: build/C/man2/msgop.2:226
3641 msgid "If I<msgtyp> is 0, then the first message in the queue is read."
3642 msgstr "I<msgtyp> が 0 ならば、キューの最初にあるメッセージが読み込まれる。"
3643
3644 #. type: Plain text
3645 #: build/C/man2/msgop.2:240
3646 msgid ""
3647 "If I<msgtyp> is greater than 0, then the first message in the queue of type "
3648 "I<msgtyp> is read, unless B<MSG_EXCEPT> was specified in I<msgflg>, in which "
3649 "case the first message in the queue of type not equal to I<msgtyp> will be "
3650 "read."
3651 msgstr ""
3652 "I<msgtyp> が 0 より大きい場合、 I<msgflg> に B<MSG_EXCEPT> が指定されていなけ"
3653 "れば、 I<msgtyp> 型のキューの最初のメッセージが読み込まれる。 B<MSG_EXCEPT> "
3654 "が指定された場合は、 I<msgtyp> 型以外のキューの最初のメッセージが読み込まれ"
3655 "る。"
3656
3657 #. type: Plain text
3658 #: build/C/man2/msgop.2:248
3659 msgid ""
3660 "If I<msgtyp> is less than 0, then the first message in the queue with the "
3661 "lowest type less than or equal to the absolute value of I<msgtyp> will be "
3662 "read."
3663 msgstr ""
3664 "I<msgtyp> が 0 より小さければ、 I<msgtyp> の絶対値以下で最も小さい型を持つ"
3665 "キューの最初のメッセージが読み込まれる。"
3666
3667 #. type: Plain text
3668 #: build/C/man2/msgop.2:253
3669 msgid ""
3670 "The I<msgflg> argument is a bit mask constructed by ORing together zero or "
3671 "more of the following flags:"
3672 msgstr ""
3673 "I<msgflg> 引き数には、以下のフラグを任意の数だけ (0個も可)、これらの OR で指"
3674 "定する:"
3675
3676 #. type: TP
3677 #: build/C/man2/msgop.2:253
3678 #, no-wrap
3679 msgid "B<IPC_NOWAIT>"
3680 msgstr "B<IPC_NOWAIT>"
3681
3682 #. type: Plain text
3683 #: build/C/man2/msgop.2:260
3684 msgid ""
3685 "Return immediately if no message of the requested type is in the queue.  The "
3686 "system call fails with I<errno> set to B<ENOMSG>."
3687 msgstr ""
3688 "キューに要求された型のメッセージがない場合には直ちに返る。 システムコールは失"
3689 "敗し、 I<errno> には B<ENOMSG> が設定される。"
3690
3691 #. type: TP
3692 #: build/C/man2/msgop.2:260
3693 #, no-wrap
3694 msgid "B<MSG_COPY> (since Linux 3.8)"
3695 msgstr "B<MSG_COPY> (Linux 3.8 以降)"
3696
3697 #.  commit 4a674f34ba04a002244edaf891b5da7fc1473ae8
3698 #. type: Plain text
3699 #: build/C/man2/msgop.2:267
3700 msgid ""
3701 "Nondestructively fetch a copy of the message at the ordinal position in the "
3702 "queue specified by I<msgtyp> (messages are considered to be numbered "
3703 "starting at 0)."
3704 msgstr ""
3705 "キューの中で I<msgtyp> で指定した位置にあるメッセージのコピーを、キューを変更"
3706 "せずに (非破壊的に) 取り出す (メッセージの位置は 0 から順番に番号が割り当てら"
3707 "れる)。"
3708
3709 #. type: Plain text
3710 #: build/C/man2/msgop.2:281
3711 msgid ""
3712 "This flag must be specified in conjunction with B<IPC_NOWAIT>, with the "
3713 "result that, if there is no message available at the given position, the "
3714 "call fails immediately with the error B<ENOMSG>.  Because they alter the "
3715 "meaning of I<msgtyp> in orthogonal ways, B<MSG_COPY> and B<MSG_EXCEPT> may "
3716 "not both be specified in I<msgflg>."
3717 msgstr ""
3718 "このフラグは B<IPC_NOWAIT> と組み合わせて指定しなければならない。 その結果、"
3719 "指定した位置にメッセージがなかった場合、呼び出しはエラー B<ENOMSG> ですぐに失"
3720 "敗する。 B<MSG_COPY> と B<MSG_EXCEPT> は I<msgtyp> の意味を相容れない方法で使"
3721 "用するため、この二つのフラグの両方を I<msgtyp> に指定することはできない。"
3722
3723 #. type: Plain text
3724 #: build/C/man2/msgop.2:289
3725 msgid ""
3726 "The B<MSG_COPY> flag was added for the implementation of the kernel "
3727 "checkpoint-restore facility and is available only if the kernel was built "
3728 "with the B<CONFIG_CHECKPOINT_RESTORE> option."
3729 msgstr ""
3730 "B<MSG_COPY> フラグは、 カーネルのチェックポイント復元 (checkpoint-restore) 機"
3731 "能の実装のために追加された。 このフラグはカーネルが "
3732 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成された場合にのみ利用で"
3733 "きる。"
3734
3735 #. type: TP
3736 #: build/C/man2/msgop.2:289
3737 #, no-wrap
3738 msgid "B<MSG_EXCEPT>"
3739 msgstr "B<MSG_EXCEPT>"
3740
3741 #. type: Plain text
3742 #: build/C/man2/msgop.2:297
3743 msgid ""
3744 "Used with I<msgtyp> greater than 0 to read the first message in the queue "
3745 "with message type that differs from I<msgtyp>."
3746 msgstr ""
3747 "0 より大きな I<msgtyp> と一緒に使用して、 I<msgtyp> 以外のキューの最初のメッ"
3748 "セージを読み込む。"
3749
3750 #. type: TP
3751 #: build/C/man2/msgop.2:297
3752 #, no-wrap
3753 msgid "B<MSG_NOERROR>"
3754 msgstr "B<MSG_NOERROR>"
3755
3756 #. type: Plain text
3757 #: build/C/man2/msgop.2:302
3758 msgid "To truncate the message text if longer than I<msgsz> bytes."
3759 msgstr "I<msgsz> バイトよりも長かった場合はメッセージのテキストを切り詰める。"
3760
3761 #. type: Plain text
3762 #: build/C/man2/msgop.2:308
3763 msgid ""
3764 "If no message of the requested type is available and B<IPC_NOWAIT> isn't "
3765 "specified in I<msgflg>, the calling process is blocked until one of the "
3766 "following conditions occurs:"
3767 msgstr ""
3768 "要求された型のメッセージが存在せず、 I<msgflg> に B<IPC_NOWAIT> が指定されて"
3769 "いなかった場合、呼び出し元プロセスは 以下のいずれかの状況になるまで停止 "
3770 "(block) される:"
3771
3772 #. type: Plain text
3773 #: build/C/man2/msgop.2:310
3774 msgid "A message of the desired type is placed in the queue."
3775 msgstr "要求している型のメッセージがキューへ入れられた。"
3776
3777 #. type: Plain text
3778 #: build/C/man2/msgop.2:316
3779 msgid ""
3780 "The message queue is removed from the system.  In this case, the system call "
3781 "fails with I<errno> set to B<EIDRM>."
3782 msgstr ""
3783 "メッセージキューがシステムから削除された。 この場合、システムコールは失敗"
3784 "し、 I<errno> に B<EIDRM> が設定される。"
3785
3786 #. type: Plain text
3787 #: build/C/man2/msgop.2:327
3788 msgid ""
3789 "The calling process catches a signal.  In this case, the system call fails "
3790 "with I<errno> set to B<EINTR>.  (B<msgrcv>()  is never automatically "
3791 "restarted after being interrupted by a signal handler, regardless of the "
3792 "setting of the B<SA_RESTART> flag when establishing a signal handler.)"
3793 msgstr ""
3794 "呼び出し元プロセスがシグナルを捕獲した。 この場合、システムコールは失敗し、 "
3795 "I<errno> に B<EINTR> が設定される。 (B<msgrcv>()  は、たとえシグナルハンド"
3796 "ラーの設定時に B<SA_RESTART> を指定していたとしても、シグナルハンドラーによっ"
3797 "て割り込まれた後で 自動的に再スタートすることは決してない。)"
3798
3799 #. type: Plain text
3800 #: build/C/man2/msgop.2:333
3801 msgid "I<msg_lrpid> is set to the process ID of the calling process."
3802 msgstr "I<msg_lrpid> には呼び出し元プロセスのプロセス ID が設定される。"
3803
3804 #. type: Plain text
3805 #: build/C/man2/msgop.2:336
3806 msgid "I<msg_qnum> is decremented by 1."
3807 msgstr "I<msg_qnum> は 1 減算される。"
3808
3809 #. type: Plain text
3810 #: build/C/man2/msgop.2:339
3811 msgid "I<msg_rtime> is set to the current time."
3812 msgstr "I<msg_rtime> には現在の時刻が設定される。"
3813
3814 #. type: Plain text
3815 #: build/C/man2/msgop.2:352
3816 msgid ""
3817 "On failure both functions return -1 with I<errno> indicating the error, "
3818 "otherwise B<msgsnd>()  returns 0 and B<msgrcv>()  returns the number of "
3819 "bytes actually copied into the I<mtext> array."
3820 msgstr ""
3821 "失敗した場合は、どちらの関数も -1 を返し、エラーを I<errno> に表示する。成功"
3822 "した場合、 B<msgsnd>()  は 0 を返し、 B<msgrcv>()  は I<mtext> 配列に実際にコ"
3823 "ピーしたバイト数を返す。"
3824
3825 #. type: Plain text
3826 #: build/C/man2/msgop.2:358
3827 msgid ""
3828 "When B<msgsnd>()  fails, I<errno> will be set to one among the following "
3829 "values:"
3830 msgstr ""
3831 "B<msgsnd>()  が失敗した場合、 B<errno> に以下の値のいずれかが設定される:"
3832
3833 #. type: Plain text
3834 #: build/C/man2/msgop.2:364
3835 msgid ""
3836 "The calling process does not have write permission on the message queue, and "
3837 "does not have the B<CAP_IPC_OWNER> capability."
3838 msgstr ""
3839 "呼び出し元プロセスにはメッセージキューに対する書き込み許可がなく、 "
3840 "B<CAP_IPC_OWNER> ケーパビリティもない。"
3841
3842 #. type: Plain text
3843 #: build/C/man2/msgop.2:372
3844 msgid ""
3845 "The message can't be sent due to the I<msg_qbytes> limit for the queue and "
3846 "B<IPC_NOWAIT> was specified in I<msgflg>."
3847 msgstr ""
3848 "I<msg_qbytes> がキューの制限を超えていたため、メッセージを送ることができず、"
3849 "かつ I<msgflg> に B<IPC_NOWAIT> が指定されていた。"
3850
3851 #. type: Plain text
3852 #: build/C/man2/msgop.2:377 build/C/man2/msgop.2:430
3853 msgid "The address pointed to by I<msgp> isn't accessible."
3854 msgstr "I<msgp> が指しているアドレスがアクセス可能でない。"
3855
3856 #. type: Plain text
3857 #: build/C/man2/msgop.2:383
3858 msgid ""
3859 "Sleeping on a full message queue condition, the process caught a signal."
3860 msgstr ""
3861 "メッセージキューが要求した条件を満たすまで停止している時に、 プロセスがシグナ"
3862 "ルを捕獲した。"
3863
3864 #. type: Plain text
3865 #: build/C/man2/msgop.2:394
3866 msgid ""
3867 "Invalid I<msqid> value, or nonpositive I<mtype> value, or invalid I<msgsz> "
3868 "value (less than 0 or greater than the system value B<MSGMAX>)."
3869 msgstr ""
3870 "I<msqid> が不適切な値であるか、 I<mtype> が正の値でないか、 I<msgsz> が不適切"
3871 "な値 (0 以下か、システムで決まる値 B<MSGMAX> よりも大きい値) である。"
3872
3873 #. type: Plain text
3874 #: build/C/man2/msgop.2:399
3875 msgid ""
3876 "The system does not have enough memory to make a copy of the message pointed "
3877 "to by I<msgp>."
3878 msgstr ""
3879 "I<msgp> が指すメッセージのコピーを作成するのに十分なメモリーがシステムに存在"
3880 "しない。"
3881
3882 #. type: Plain text
3883 #: build/C/man2/msgop.2:405
3884 msgid ""
3885 "When B<msgrcv>()  fails, I<errno> will be set to one among the following "
3886 "values:"
3887 msgstr ""
3888 "B<msgrcv>()  が失敗した場合には I<errno> に以下の値のいずれかが設定される:"
3889
3890 #. type: TP
3891 #: build/C/man2/msgop.2:405
3892 #, no-wrap
3893 msgid "B<E2BIG>"
3894 msgstr "B<E2BIG>"
3895
3896 #. type: Plain text
3897 #: build/C/man2/msgop.2:413
3898 msgid ""
3899 "The message text length is greater than I<msgsz> and B<MSG_NOERROR> isn't "
3900 "specified in I<msgflg>."
3901 msgstr ""
3902 "メッセージのテキストの長さが I<msgsz> よりも大きく、 I<msgflg> に "
3903 "B<MSG_NOERROR> が設定されていなかった。"
3904
3905 #. type: Plain text
3906 #: build/C/man2/msgop.2:419
3907 msgid ""
3908 "The calling process does not have read permission on the message queue, and "
3909 "does not have the B<CAP_IPC_OWNER> capability."
3910 msgstr ""
3911 "呼び出し元プロセスにはメッセージキューに対する読み込み許可がなく、 "
3912 "B<CAP_IPC_OWNER> ケーパビリティもない。"
3913
3914 #. type: Plain text
3915 #: build/C/man2/msgop.2:425
3916 msgid ""
3917 "No message was available in the queue and B<IPC_NOWAIT> was specified in "
3918 "I<msgflg>."
3919 msgstr "キューにはメッセージがなく、 I<msgflg> に B<IPC_NOWAIT> が指定された。"
3920
3921 #. type: Plain text
3922 #: build/C/man2/msgop.2:434
3923 msgid ""
3924 "While the process was sleeping to receive a message, the message queue was "
3925 "removed."
3926 msgstr ""
3927 "メッセージを受信するためにプロセスが停止している間に、 メッセージキューが削除"
3928 "された。"
3929
3930 #. type: Plain text
3931 #: build/C/man2/msgop.2:439
3932 msgid ""
3933 "While the process was sleeping to receive a message, the process caught a "
3934 "signal; see B<signal>(7)."
3935 msgstr ""
3936 "メッセージを受けるためにプロセスが停止している間に、 プロセスがシグナルを捕獲"
3937 "した。 B<signal>(7)  参照。"
3938
3939 #. type: Plain text
3940 #: build/C/man2/msgop.2:445
3941 msgid "I<msgqid> was invalid, or I<msgsz> was less than 0."
3942 msgstr "I<msgqid> が不正か、 I<msgsz> が 0 より小さい。"
3943
3944 #. type: TP
3945 #: build/C/man2/msgop.2:445 build/C/man2/msgop.2:452
3946 #, no-wrap
3947 msgid "B<EINVAL> (since Linux 3.14)"
3948 msgstr "B<EINVAL> (Linux 3.14 以降)"
3949
3950 #. type: Plain text
3951 #: build/C/man2/msgop.2:452
3952 msgid "I<msgflg> specified B<MSG_COPY>, but not B<IPC_NOWAIT>."
3953 msgstr ""
3954 "I<msgflg> に B<MSG_COPY> が指定されたが、 B<IPC_NOWAIT> が指定されていない。"
3955
3956 #. type: Plain text
3957 #: build/C/man2/msgop.2:459
3958 msgid "I<msgflg> specified both B<MSG_COPY> and B<MSG_EXCEPT>."
3959 msgstr "I<msgflg> に B<MSG_COPY> と B<MSG_EXCEPT> の両方が指定された。"
3960
3961 #. type: TP
3962 #: build/C/man2/msgop.2:459 build/C/man2/msgop.2:465
3963 #, no-wrap
3964 msgid "B<ENOMSG>"
3965 msgstr "B<ENOMSG>"
3966
3967 #. type: Plain text
3968 #: build/C/man2/msgop.2:465
3969 msgid ""
3970 "B<IPC_NOWAIT> was specified in I<msgflg> and no message of the requested "
3971 "type existed on the message queue."
3972 msgstr ""
3973 "I<msgflg> に B<IPC_NOWAIT> が設定されており、 メッセージキューに要求された型"
3974 "のメッセージが存在しなかった。"
3975
3976 #. type: Plain text
3977 #: build/C/man2/msgop.2:475
3978 msgid ""
3979 "B<IPC_NOWAIT> and B<MSG_COPY> were specified in I<msgflg> and the queue "
3980 "contains less than I<msgtyp> messages."
3981 msgstr ""
3982 "B<IPC_NOWAIT> と B<MSG_COPY> が I<msgflg> に指定されたが、 キューには "
3983 "I<msgtyp> 未満のメッセージしか入っていなかった。"
3984
3985 #. type: TP
3986 #: build/C/man2/msgop.2:475
3987 #, no-wrap
3988 msgid "B<ENOSYS> (since Linux 3.8)"
3989 msgstr "B<ENOSYS> (Linux 3.8 以降)"
3990
3991 #. type: Plain text
3992 #: build/C/man2/msgop.2:482
3993 msgid ""
3994 "I<MSG_COPY> was specified in I<msgflg>, and this kernel was configured "
3995 "without B<CONFIG_CHECKPOINT_RESTORE>."
3996 msgstr ""
3997 "I<msgflg> に I<MSG_COPY> が指定されたが、カーネルが "
3998 "B<CONFIG_CHECKPOINT_RESTORE> なしで作成されている。"
3999
4000 #.  MSG_COPY since glibc 2.18
4001 #. type: Plain text
4002 #: build/C/man2/msgop.2:494
4003 msgid ""
4004 "The B<MSG_EXCEPT> and B<MSG_COPY> flags are Linux-specific; their "
4005 "definitions can be obtained by defining the B<_GNU_SOURCE> feature test "
4006 "macro."
4007 msgstr ""
4008 "フラグ B<MSG_EXCEPT> と B<MSG_COPY> は Linux 固有である。 これらの定義を得る"
4009 "には、機能検査マクロ B<_GNU_SOURCE> を定義する。"
4010
4011 #. type: Plain text
4012 #: build/C/man2/msgop.2:514
4013 msgid ""
4014 "The I<msgp> argument is declared as I<struct msgbuf\\ *> in glibc 2.0 and "
4015 "2.1.  It is declared as I<void\\ *> in glibc 2.2 and later, as required by "
4016 "SUSv2 and SUSv3."
4017 msgstr ""
4018 "I<msgp> 引き数は、 glibc 2.0 と 2.1 では I<struct msgbuf\\ *> と宣言されてい"
4019 "る。glibc 2.2 以降では、 SUSv2 と SUSv3 の要求通り、I<void\\ *> と宣言されて"
4020 "いる。"
4021
4022 #. type: Plain text
4023 #: build/C/man2/msgop.2:518
4024 msgid ""
4025 "The following limits on message queue resources affect the B<msgsnd>()  call:"
4026 msgstr "以下は B<msgsnd> システムコールに影響するシステム制限である:"
4027
4028 #. type: TP
4029 #: build/C/man2/msgop.2:518
4030 #, no-wrap
4031 msgid "B<MSGMAX>"
4032 msgstr "B<MSGMAX>"
4033
4034 #. type: Plain text
4035 #: build/C/man2/msgop.2:523
4036 msgid ""
4037 "Maximum size for a message text: 8192 bytes (on Linux, this limit can be "
4038 "read and modified via I</proc/sys/kernel/msgmax>)."
4039 msgstr ""
4040 "メッセージのテキストの最大サイズ: 8192 バイト (Linux では、この制限値は I</"
4041 "proc/sys/kernel/msgmax> 経由で読み出したり変更したりできる)。"
4042
4043 #. type: TP
4044 #: build/C/man2/msgop.2:523
4045 #, no-wrap
4046 msgid "B<MSGMNB>"
4047 msgstr "B<MSGMNB>"
4048
4049 #. type: Plain text
4050 #: build/C/man2/msgop.2:537
4051 msgid ""
4052 "Default maximum size in bytes of a message queue: 16384 bytes (on Linux, "
4053 "this limit can be read and modified via I</proc/sys/kernel/msgmnb>).  A "
4054 "privileged process (Linux: a process with the B<CAP_SYS_RESOURCE> "
4055 "capability)  can increase the size of a message queue beyond B<MSGMNB> by a "
4056 "B<msgctl>(2)  system call."
4057 msgstr ""
4058 "バイト単位でのメッセージキューのデフォルトの最大サイズ : 16384 バイト。 "
4059 "(Linux では、この制限値は I</proc/sys/kernel/msgmnb> 経由で読み出したり変更し"
4060 "たりできる)。 特権プロセス (Linux ではケーパビリティ B<CAP_SYS_RESOURCE> を"
4061 "持ったプロセス) は B<msgctl>(2)  システムコールでメッセージキューのサイズを "
4062 "B<MSGMNB> よりも大きい値に増やすことができる。"
4063
4064 #. type: Plain text
4065 #: build/C/man2/msgop.2:543
4066 msgid ""
4067 "The implementation has no intrinsic system-wide limits on the number of "
4068 "message headers (B<MSGTQL>)  and the number of bytes in the message pool "
4069 "(B<MSGPOOL>)."
4070 msgstr ""
4071 "現在の実装では、システム全体のメッセージヘッダーの上限数 (B<MSGTQL>)  と、シ"
4072 "ステム全体のメッセージプールの最大バイト数 (B<MSGPOOL>)  に関して実装依存の制"
4073 "限はない。"
4074
4075 #.  http://marc.info/?l=linux-kernel&m=139048542803605&w=2
4076 #.  commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c
4077 #. type: Plain text
4078 #: build/C/man2/msgop.2:563
4079 msgid ""
4080 "In Linux 3.13 and earlier, if B<msgrcv>()  was called with the B<MSG_COPY> "
4081 "flag, but without B<IPC_NOWAIT>, and the message queue contained less than "
4082 "I<msgtyp> messages, then the call would block until the next message is "
4083 "written to the queue.  At that point, the call would return a copy of the "
4084 "message, I<regardless> of whether that message was at the ordinal position "
4085 "I<msgtyp>.  This bug is fixed in Linux 3.14."
4086 msgstr ""
4087 "Linux 3.13 以前では、 B<msgrcv>() の呼び出しで B<MSG_COPY> フラグは指定された"
4088 "が B<IPC_NOWAIT> は指定されず、かつメッセージキューに I<msgtyp> 未満のメッ"
4089 "セージしかない場合に、 B<msgrcv>() の呼び出しはキューに次のメッセージが書き込"
4090 "まれるまで停止していた。 新しいメッセージが書き込まれた時点で、 そのメッセー"
4091 "ジが指定された位置 I<msgtyp> かどうかにI<関わらず>、 B<msgrcv>() の呼び出しは"
4092 "新たに書き込まれたメッセージのコピーを返していた。 このバグは Linux 3.14"
4093 "で修正された。"
4094
4095 #.  http://marc.info/?l=linux-kernel&m=139048542803605&w=2
4096 #.  commit 4f87dac386cc43d5525da7a939d4b4e7edbea22c
4097 #. type: Plain text
4098 #: build/C/man2/msgop.2:579
4099 msgid ""
4100 "Specifying both B<MSG_COPY> and B<MSC_EXCEPT> in I<msgflg> is a logical "
4101 "error (since these flags impose different interpretations on I<msgtyp>).  In "
4102 "Linux 3.13 and earlier, this error was not diagnosed by B<msgrcv>().  This "
4103 "bug is fixed in Linux 3.14."
4104 msgstr ""
4105 "I<msg_copy> に B<MSG_COPY> と B<MSG_EXCEPT> の両方を指定するのは、論理的なエ"
4106 "ラーである (なぜならこれらのフラグは I<msgtyp> を別の意味で解釈するからであ"
4107 "る)。 Linux 3.13 以前では、B<msgrcv>() がこのエラーを検出しなかった。 このバ"
4108 "グは Linux 3.14 で修正された。"
4109
4110 #. type: Plain text
4111 #: build/C/man2/msgop.2:585
4112 msgid ""
4113 "B<msgctl>(2), B<msgget>(2), B<capabilities>(7), B<mq_overview>(7), "
4114 "B<svipc>(7)"
4115 msgstr ""
4116 "B<msgctl>(2), B<msgget>(2), B<capabilities>(7), B<mq_overview>(7), "
4117 "B<svipc>(7)"