OSDN Git Service

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