OSDN Git Service

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