OSDN Git Service

(split) LDP: Translate COLOPHON and the project description.
[linuxjm/LDP_man-pages.git] / po4a / epoll / 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-03-22 04:25+0900\n"
10 "PO-Revision-Date: 2012-03-23 04:42+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man7/epoll.7:21
20 #, no-wrap
21 msgid "EPOLL"
22 msgstr "EPOLL"
23
24 #. type: TH
25 #: build/C/man7/epoll.7:21
26 #, no-wrap
27 msgid "2009-02-01"
28 msgstr "2009-02-01"
29
30 #. type: TH
31 #: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:25
32 #: build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23
33 #: build/C/man2/poll.2:31
34 #, no-wrap
35 msgid "Linux"
36 msgstr "Linux"
37
38 #. type: TH
39 #: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:25
40 #: build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23
41 #: build/C/man2/poll.2:31
42 #, no-wrap
43 msgid "Linux Programmer's Manual"
44 msgstr "Linux Programmer's Manual"
45
46 #. type: SH
47 #: build/C/man7/epoll.7:22 build/C/man2/epoll_create.2:26
48 #: build/C/man2/epoll_ctl.2:22 build/C/man2/epoll_wait.2:24
49 #: build/C/man2/poll.2:32
50 #, no-wrap
51 msgid "NAME"
52 msgstr "名前"
53
54 #. type: Plain text
55 #: build/C/man7/epoll.7:24
56 msgid "epoll - I/O event notification facility"
57 msgstr "epoll - I/O イベント通知機能"
58
59 #. type: SH
60 #: build/C/man7/epoll.7:24 build/C/man2/epoll_create.2:28
61 #: build/C/man2/epoll_ctl.2:24 build/C/man2/epoll_wait.2:26
62 #: build/C/man2/poll.2:34
63 #, no-wrap
64 msgid "SYNOPSIS"
65 msgstr "書式"
66
67 #. type: Plain text
68 #: build/C/man7/epoll.7:26 build/C/man2/epoll_ctl.2:26
69 msgid "B<#include E<lt>sys/epoll.hE<gt>>"
70 msgstr "B<#include E<lt>sys/epoll.hE<gt>>"
71
72 #. type: SH
73 #: build/C/man7/epoll.7:26 build/C/man2/epoll_create.2:35
74 #: build/C/man2/epoll_ctl.2:29 build/C/man2/epoll_wait.2:36
75 #: build/C/man2/poll.2:46
76 #, no-wrap
77 msgid "DESCRIPTION"
78 msgstr "説明"
79
80 #. type: Plain text
81 #: build/C/man7/epoll.7:36
82 msgid ""
83 "B<epoll> is a variant of B<poll>(2)  that can be used either as an edge-"
84 "triggered or a level-triggered interface and scales well to large numbers of "
85 "watched file descriptors.  The following system calls are provided to create "
86 "and manage an B<epoll> instance:"
87 msgstr ""
88 "B<epoll> は B<poll>(2)  の一種であり、エッジトリガインタフェースと レベルトリ"
89 "ガインタフェースのどちらとしても使用することができ、 監視するファイルディスク"
90 "リプタの数が多い場合にも使用できる。 B<epoll> インスタンスの作成や管理を行う"
91 "ために 以下のシステムコールが提供されている:"
92
93 #. type: IP
94 #: build/C/man7/epoll.7:36 build/C/man7/epoll.7:46 build/C/man7/epoll.7:54
95 #, no-wrap
96 msgid "*"
97 msgstr "*"
98
99 #. type: Plain text
100 #: build/C/man7/epoll.7:46
101 msgid ""
102 "An B<epoll> instance created by B<epoll_create>(2), which returns a file "
103 "descriptor referring to the epoll instance.  (The more recent "
104 "B<epoll_create1>(2)  extends the functionality of B<epoll_create>(2).)"
105 msgstr ""
106 "B<epoll> インスタンスは B<epoll_create>(2)  で作成される。 B<epoll_create>"
107 "(2)  は作成した epoll インスタンスを参照するファイルディスクリプタを返す。 "
108 "(もっと新しい B<epoll_create1>(2)  では、 B<epoll_create>(2)  の機能が拡張さ"
109 "れている)。"
110
111 #. type: Plain text
112 #: build/C/man7/epoll.7:54
113 msgid ""
114 "Interest in particular file descriptors is then registered via B<epoll_ctl>"
115 "(2).  The set of file descriptors currently registered on an B<epoll> "
116 "instance is sometimes called an I<epoll> set."
117 msgstr ""
118 "特定のファイルディスクリプタに対する監視内容を B<epoll_ctl>(2)  で登録する。 "
119 "B<epoll> インスタンスに現在登録されているファイルディスクリプタの集合は "
120 "I<epoll> 集合と呼ばれることもある。"
121
122 #. type: Plain text
123 #: build/C/man7/epoll.7:57
124 msgid "Finally, the actual wait is started by B<epoll_wait>(2)."
125 msgstr "最後に B<epoll_wait>(2)  で実際のイベント待ちを開始する。"
126
127 #. type: SS
128 #: build/C/man7/epoll.7:57
129 #, no-wrap
130 msgid "Level-Triggered and Edge-Triggered"
131 msgstr "レベルトリガとエッジトリガ"
132
133 #. type: Plain text
134 #: build/C/man7/epoll.7:66
135 msgid ""
136 "The B<epoll> event distribution interface is able to behave both as edge-"
137 "triggered (ET) and as level-triggered (LT).  The difference between the two "
138 "mechanisms can be described as follows.  Suppose that this scenario happens:"
139 msgstr ""
140 "B<epoll> イベント配送 (distribution) インタフェースは、 エッジトリガ (ET) と"
141 "してもレベルトリガ (LT) としても動作させることができる。 二つの配送機構の違い"
142 "は、次のように説明できる。 このようなシナリオが起こったとしよう:"
143
144 #. type: IP
145 #: build/C/man7/epoll.7:66
146 #, no-wrap
147 msgid "1."
148 msgstr "1."
149
150 #. type: Plain text
151 #: build/C/man7/epoll.7:72
152 msgid ""
153 "The file descriptor that represents the read side of a pipe (I<rfd>)  is "
154 "registered on the B<epoll> instance."
155 msgstr ""
156 "パイプの読み込み側を表すファイルディスクリプタ (I<rfd>)  が B<epoll> インスタ"
157 "ンスに登録される。"
158
159 #. type: IP
160 #: build/C/man7/epoll.7:72
161 #, no-wrap
162 msgid "2."
163 msgstr "2."
164
165 #. type: Plain text
166 #: build/C/man7/epoll.7:74
167 msgid "A pipe writer writes 2 kB of data on the write side of the pipe."
168 msgstr ""
169 "パイプへ書き込むプログラムが 2 kB のデータをパイプの書き込み側へ書き込む。"
170
171 #. type: IP
172 #: build/C/man7/epoll.7:74
173 #, no-wrap
174 msgid "3."
175 msgstr "3."
176
177 #. type: Plain text
178 #: build/C/man7/epoll.7:80
179 msgid ""
180 "A call to B<epoll_wait>(2)  is done that will return I<rfd> as a ready file "
181 "descriptor."
182 msgstr ""
183 "B<epoll_wait>(2)  を呼び出すと、読み込み可能 (ready) なファイルディスクリプタ"
184 "として I<rfd> が返る。"
185
186 #. type: IP
187 #: build/C/man7/epoll.7:80
188 #, no-wrap
189 msgid "4."
190 msgstr "4."
191
192 #. type: Plain text
193 #: build/C/man7/epoll.7:83
194 msgid "The pipe reader reads 1 kB of data from I<rfd>."
195 msgstr "パイプから読み出すプログラムが、1 kB のデータを I<rfd> から読み出す。"
196
197 #. type: IP
198 #: build/C/man7/epoll.7:83
199 #, no-wrap
200 msgid "5."
201 msgstr "5."
202
203 #. type: Plain text
204 #: build/C/man7/epoll.7:87
205 msgid "A call to B<epoll_wait>(2)  is done."
206 msgstr "B<epoll_wait>(2)  の呼び出しが行われる。"
207
208 #. type: Plain text
209 #: build/C/man7/epoll.7:122
210 msgid ""
211 "If the I<rfd> file descriptor has been added to the B<epoll> interface using "
212 "the B<EPOLLET> (edge-triggered)  flag, the call to B<epoll_wait>(2)  done in "
213 "step B<5> will probably hang despite the available data still present in the "
214 "file input buffer; meanwhile the remote peer might be expecting a response "
215 "based on the data it already sent.  The reason for this is that edge-"
216 "triggered mode only delivers events when changes occur on the monitored file "
217 "descriptor.  So, in step B<5> the caller might end up waiting for some data "
218 "that is already present inside the input buffer.  In the above example, an "
219 "event on I<rfd> will be generated because of the write done in B<2> and the "
220 "event is consumed in B<3>.  Since the read operation done in B<4> does not "
221 "consume the whole buffer data, the call to B<epoll_wait>(2)  done in step "
222 "B<5> might block indefinitely."
223 msgstr ""
224 "I<rfd> ファイルディスクリプタが B<EPOLLET> フラグ (エッジトリガ) を使って "
225 "B<epoll> に追加されていると、 利用可能なデータがファイル入力バッファにまだ存"
226 "在するにもかかわらず ステップ B<5> の B<epoll_wait>(2)  の呼び出しでハングす"
227 "る可能性がある。 その一方で、リモートの接続先 (peer) は既に送られたデータに "
228 "基づいて応答を期待しているかもしれない。 このようなことが起こる理由は、エッジ"
229 "トリガイベント配送では、 モニタしているファイルでイベントが起ったときにのみイ"
230 "ベントが 配送されるためである。 したがって、ステップ B<5> では、呼び出し側は"
231 "結果的に 入力バッファ内にすで存在するデータを待つことになるかもしれない。 上"
232 "記の例では、 B<2> で行われた書き込みによって I<rfd> に関するイベントが生成さ"
233 "れ、 B<3> でイベントが消費 (consume) される。 B<4> で行われる読み込み操作で"
234 "は、全部のバッファデータを消費しないので、 ステップ B<5> で行われる "
235 "B<epoll_wait>(2)  の呼び出しが 無期限に停止 (block) するかもしれない。"
236
237 #. type: Plain text
238 #: build/C/man7/epoll.7:132
239 msgid ""
240 "An application that employs the B<EPOLLET> flag should use nonblocking file "
241 "descriptors to avoid having a blocking read or write starve a task that is "
242 "handling multiple file descriptors.  The suggested way to use B<epoll> as an "
243 "edge-triggered (B<EPOLLET>)  interface is as follows:"
244 msgstr ""
245 "B<EPOLLET> フラグを採用するアプリケーションでは、 インタフェースはブロックし"
246 "ない (nonblocking) ファイルディスクリプタを 使うべきである。 これは、ブロック"
247 "される読み込みや書き込みによって、 複数のファイルディスクリプタを扱うタスク"
248 "が 停止してしまうのを避けるためである。 B<epoll> をエッジトリガ "
249 "(B<EPOLLET>)  インタフェースとして使うために提案される方法は以下の通りであ"
250 "る。"
251
252 #. type: TP
253 #: build/C/man7/epoll.7:133
254 #, no-wrap
255 msgid "B<i>"
256 msgstr "B<i>"
257
258 #. type: Plain text
259 #: build/C/man7/epoll.7:136
260 msgid "with nonblocking file descriptors; and"
261 msgstr "ブロックしないファイルディスクリプタと共に使う。"
262
263 #. type: TP
264 #: build/C/man7/epoll.7:136
265 #, no-wrap
266 msgid "B<ii>"
267 msgstr "B<ii>"
268
269 #. type: Plain text
270 #: build/C/man7/epoll.7:144
271 msgid ""
272 "by waiting for an event only after B<read>(2)  or B<write>(2)  return "
273 "B<EAGAIN>."
274 msgstr ""
275 "B<read>(2)  または B<write>(2)  が B<EAGAIN> を返した後でのみ、イベントを待"
276 "つ。"
277
278 #. type: Plain text
279 #: build/C/man7/epoll.7:155
280 msgid ""
281 "By contrast, when used as a level-triggered interface (the default, when "
282 "B<EPOLLET> is not specified), B<epoll> is simply a faster B<poll>(2), and "
283 "can be used wherever the latter is used since it shares the same semantics."
284 msgstr ""
285 "一方、レベルトリガインタフェースとして使う場合\n"
286 " (こちらがデフォルトである、\n"
287 "B<EPOLLET> が指定されなかった場合)、\n"
288 "B<epoll> は単に高速な B<poll>(2) であり、使い方が同じなので、\n"
289 "B<poll>(2) が使われているところではどこでも使用することができる。"
290
291 #. type: Plain text
292 #: build/C/man7/epoll.7:172
293 msgid ""
294 "Since even with edge-triggered B<epoll>, multiple events can be generated "
295 "upon receipt of multiple chunks of data, the caller has the option to "
296 "specify the B<EPOLLONESHOT> flag, to tell B<epoll> to disable the associated "
297 "file descriptor after the receipt of an event with B<epoll_wait>(2).  When "
298 "the B<EPOLLONESHOT> flag is specified, it is the caller's responsibility to "
299 "rearm the file descriptor using B<epoll_ctl>(2)  with B<EPOLL_CTL_MOD>."
300 msgstr ""
301 "エッジトリガを使った場合でも、複数のデータを受信すると複数の B<epoll> イベン"
302 "トが生成されるので、 呼び出し側には B<EPOLLONESHOT> フラグを指定するオプショ"
303 "ンがある。 このフラグは B<epoll> に対して、 B<epoll_wait>(2)  によるイベント"
304 "を受信した後で、関連するファイルディスクリプタを無効にさせる。 "
305 "B<EPOLLONESHOT> フラグが指定された場合、 B<epoll_ctl>(2)  に "
306 "B<EPOLL_CTL_MOD> を指定してファイルディスクリプタを再度使用できるようにするの"
307 "は、 呼び出し側の責任である。"
308
309 #. type: SS
310 #: build/C/man7/epoll.7:172
311 #, no-wrap
312 msgid "/proc interfaces"
313 msgstr "/proc インタフェース"
314
315 #.  Following was added in 2.6.28, but them removed in 2.6.29
316 #.  .TP
317 #.  .IR /proc/sys/fs/epoll/max_user_instances " (since Linux 2.6.28)"
318 #.  This specifies an upper limit on the number of epoll instances
319 #.  that can be created per real user ID.
320 #. type: Plain text
321 #: build/C/man7/epoll.7:180
322 msgid ""
323 "The following interfaces can be used to limit the amount of kernel memory "
324 "consumed by epoll:"
325 msgstr ""
326 "epoll が消費するカーネルメモリの量を制限するために、 以下のインタフェースを使"
327 "用することができる。"
328
329 #. type: TP
330 #: build/C/man7/epoll.7:180
331 #, no-wrap
332 msgid "I</proc/sys/fs/epoll/max_user_watches> (since Linux 2.6.28)"
333 msgstr "I</proc/sys/fs/epoll/max_user_watches> (Linux 2.6.28 以降)"
334
335 #.  2.6.29 (in 2.6.28, the default was 1/32 of lowmem)
336 #. type: Plain text
337 #: build/C/man7/epoll.7:194
338 msgid ""
339 "This specifies a limit on the total number of file descriptors that a user "
340 "can register across all epoll instances on the system.  The limit is per "
341 "real user ID.  Each registered file descriptor costs roughly 90 bytes on a "
342 "32-bit kernel, and roughly 160 bytes on a 64-bit kernel.  Currently, the "
343 "default value for I<max_user_watches> is 1/25 (4%) of the available low "
344 "memory, divided by the registration cost in bytes."
345 msgstr ""
346 "このファイルは、あるユーザがシステム上の全ての epoll インスタンスに 登録でき"
347 "るファイルディスクリプタの総数の上限を規定する。 この上限は実ユーザ ID 単位で"
348 "ある。 登録されたファイルディスクリプタ 1 つが消費するメモリ量は、 32 ビット"
349 "カーネルでおよそ 90 バイト、 64 ビットカーネルでおよそ 160 バイトである。 現"
350 "在のところ、 I<max_user_watches> のデフォルト値は、利用可能なメモリ下限の "
351 "1/25 (4%) であり、 登録で消費されるメモリ量 (バイト単位) で割った値となる。"
352
353 #. type: SS
354 #: build/C/man7/epoll.7:194
355 #, no-wrap
356 msgid "Example for Suggested Usage"
357 msgstr "おすすめな使用例"
358
359 #. type: Plain text
360 #: build/C/man7/epoll.7:223
361 msgid ""
362 "While the usage of B<epoll> when employed as a level-triggered interface "
363 "does have the same semantics as B<poll>(2), the edge-triggered usage "
364 "requires more clarification to avoid stalls in the application event loop.  "
365 "In this example, listener is a nonblocking socket on which B<listen>(2)  has "
366 "been called.  The function I<do_use_fd()> uses the new ready file descriptor "
367 "until B<EAGAIN> is returned by either B<read>(2)  or B<write>(2).  An event-"
368 "driven state machine application should, after having received B<EAGAIN>, "
369 "record its current state so that at the next call to I<do_use_fd()> it will "
370 "continue to B<read>(2)  or B<write>(2)  from where it stopped before."
371 msgstr ""
372 "レベルトリガインタフェースとして使用するときの B<epoll> の使い方は B<poll>"
373 "(2)  と同じである。 しかしエッジトリガとして使う場合は、 アプリケーションのイ"
374 "ベントループでストール (stall) しないように、 使い方をより明確にしておく必要"
375 "がある。 この例では、リスナはブロックしないソケットであり、 B<listen>(2)  が"
376 "呼ばれている。 関数 I<do_use_fd()> は、 B<read>(2)  または B<write>(2)  に"
377 "よって B<EAGAIN> が返されるまでは、新しい準備済みのファイルディスクリプタを使"
378 "う。 イベント駆動ステートマシンアプリケーションは、 B<EAGAIN> を受信した後、"
379 "カレントの状態を記録しておくべきである。 これにより、次の I<do_use_fd()> 呼び"
380 "出しのときに、以前に停止したところから B<read>(2)  または B<write>(2)  を継続"
381 "することができる。"
382
383 #. type: Plain text
384 #: build/C/man7/epoll.7:229
385 #, no-wrap
386 msgid ""
387 "#define MAX_EVENTS 10\n"
388 "struct epoll_event ev, events[MAX_EVENTS];\n"
389 "int listen_sock, conn_sock, nfds, epollfd;\n"
390 msgstr ""
391 "#define MAX_EVENTS 10\n"
392 "struct epoll_event ev, events[MAX_EVENTS];\n"
393 "int listen_sock, conn_sock, nfds, epollfd;\n"
394
395 #. type: Plain text
396 #: build/C/man7/epoll.7:232
397 #, no-wrap
398 msgid ""
399 "/* Set up listening socket, \\(aqlisten_sock\\(aq (socket(),\n"
400 "   bind(), listen()) */\n"
401 msgstr ""
402 "/* Set up listening socket, \\(aqlisten_sock\\(aq (socket(),\n"
403 "   bind(), listen()) */\n"
404
405 #. type: Plain text
406 #: build/C/man7/epoll.7:238
407 #, no-wrap
408 msgid ""
409 "epollfd = epoll_create(10);\n"
410 "if (epollfd == -1) {\n"
411 "    perror(\"epoll_create\");\n"
412 "    exit(EXIT_FAILURE);\n"
413 "}\n"
414 msgstr ""
415 "epollfd = epoll_create(10);\n"
416 "if (epollfd == -1) {\n"
417 "    perror(\"epoll_create\");\n"
418 "    exit(EXIT_FAILURE);\n"
419 "}\n"
420
421 #. type: Plain text
422 #: build/C/man7/epoll.7:245
423 #, no-wrap
424 msgid ""
425 "ev.events = EPOLLIN;\n"
426 "ev.data.fd = listen_sock;\n"
427 "if (epoll_ctl(epollfd, EPOLL_CTL_ADD, listen_sock, &ev) == -1) {\n"
428 "    perror(\"epoll_ctl: listen_sock\");\n"
429 "    exit(EXIT_FAILURE);\n"
430 "}\n"
431 msgstr ""
432 "ev.events = EPOLLIN;\n"
433 "ev.data.fd = listen_sock;\n"
434 "if (epoll_ctl(epollfd, EPOLL_CTL_ADD, listen_sock, &ev) == -1) {\n"
435 "    perror(\"epoll_ctl: listen_sock\");\n"
436 "    exit(EXIT_FAILURE);\n"
437 "}\n"
438
439 #. type: Plain text
440 #: build/C/man7/epoll.7:252
441 #, no-wrap
442 msgid ""
443 "for (;;) {\n"
444 "    nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1);\n"
445 "    if (nfds == -1) {\n"
446 "        perror(\"epoll_pwait\");\n"
447 "        exit(EXIT_FAILURE);\n"
448 "    }\n"
449 msgstr ""
450 "for (;;) {\n"
451 "    nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1);\n"
452 "    if (nfds == -1) {\n"
453 "        perror(\"epoll_pwait\");\n"
454 "        exit(EXIT_FAILURE);\n"
455 "    }\n"
456
457 #. type: Plain text
458 #: build/C/man7/epoll.7:274
459 #, no-wrap
460 msgid ""
461 "    for (n = 0; n E<lt> nfds; ++n) {\n"
462 "        if (events[n].data.fd == listen_sock) {\n"
463 "            conn_sock = accept(listen_sock,\n"
464 "                            (struct sockaddr *) &local, &addrlen);\n"
465 "            if (conn_sock == -1) {\n"
466 "                perror(\"accept\");\n"
467 "                exit(EXIT_FAILURE);\n"
468 "            }\n"
469 "            setnonblocking(conn_sock);\n"
470 "            ev.events = EPOLLIN | EPOLLET;\n"
471 "            ev.data.fd = conn_sock;\n"
472 "            if (epoll_ctl(epollfd, EPOLL_CTL_ADD, conn_sock,\n"
473 "                        &ev) == -1) {\n"
474 "                perror(\"epoll_ctl: conn_sock\");\n"
475 "                exit(EXIT_FAILURE);\n"
476 "            }\n"
477 "        } else {\n"
478 "            do_use_fd(events[n].data.fd);\n"
479 "        }\n"
480 "    }\n"
481 "}\n"
482 msgstr ""
483 "    for (n = 0; n E<lt> nfds; ++n) {\n"
484 "        if (events[n].data.fd == listen_sock) {\n"
485 "            conn_sock = accept(listen_sock,\n"
486 "                            (struct sockaddr *) &local, &addrlen);\n"
487 "            if (conn_sock == -1) {\n"
488 "                perror(\"accept\");\n"
489 "                exit(EXIT_FAILURE);\n"
490 "            }\n"
491 "            setnonblocking(conn_sock);\n"
492 "            ev.events = EPOLLIN | EPOLLET;\n"
493 "            ev.data.fd = conn_sock;\n"
494 "            if (epoll_ctl(epollfd, EPOLL_CTL_ADD, conn_sock,\n"
495 "                        &ev) == -1) {\n"
496 "                perror(\"epoll_ctl: conn_sock\");\n"
497 "                exit(EXIT_FAILURE);\n"
498 "            }\n"
499 "        } else {\n"
500 "            do_use_fd(events[n].data.fd);\n"
501 "        }\n"
502 "    }\n"
503 "}\n"
504
505 #. type: Plain text
506 #: build/C/man7/epoll.7:293
507 msgid ""
508 "When used as an edge-triggered interface, for performance reasons, it is "
509 "possible to add the file descriptor inside the B<epoll> interface "
510 "(B<EPOLL_CTL_ADD>)  once by specifying (B<EPOLLIN>|B<EPOLLOUT>).  This "
511 "allows you to avoid continuously switching between B<EPOLLIN> and "
512 "B<EPOLLOUT> calling B<epoll_ctl>(2)  with B<EPOLL_CTL_MOD>."
513 msgstr ""
514 "エッジトリガインタフェースとして使う場合、性能上の理由により、 一度 "
515 "(B<EPOLLIN>|B<EPOLLOUT>)  を指定してから (B<EPOLL_CTL_ADD> で) ファイルディス"
516 "クリプタを B<epoll> インタフェースに追加することができる。 これにより、 "
517 "B<epoll_ctl>(2)  に B<EPOLL_CTL_MOD> を指定して呼び出すことで B<EPOLLIN> と "
518 "B<EPOLLOUT> の連続的な切り替えが避けられる。"
519
520 #. type: SS
521 #: build/C/man7/epoll.7:293
522 #, no-wrap
523 msgid "Questions and Answers"
524 msgstr "質問と解答"
525
526 #. type: TP
527 #: build/C/man7/epoll.7:294
528 #, no-wrap
529 msgid "B<Q0>"
530 msgstr "B<Q0>"
531
532 #. type: Plain text
533 #: build/C/man7/epoll.7:299
534 msgid ""
535 "What is the key used to distinguish the file descriptors registered in an "
536 "B<epoll> set?"
537 msgstr ""
538 "B<epoll> 集合内の登録されたファイルディスクリプタを区別するには、 何をキーと"
539 "して使えばよいか?"
540
541 #. type: TP
542 #: build/C/man7/epoll.7:299
543 #, no-wrap
544 msgid "B<A0>"
545 msgstr "B<A0>"
546
547 #. type: Plain text
548 #: build/C/man7/epoll.7:305
549 msgid ""
550 "The key is the combination of the file descriptor number and the open file "
551 "description (also known as an \"open file handle\", the kernel's internal "
552 "representation of an open file)."
553 msgstr ""
554 "キーはファイルディスクリプタ番号とオープンファイル記述 (open file "
555 "description) の組である (オープンファイル記述は \"open file handle\" とも 呼"
556 "ばれ、オープンされたファイルのカーネルの内部表現である)。"
557
558 #. type: TP
559 #: build/C/man7/epoll.7:305
560 #, no-wrap
561 msgid "B<Q1>"
562 msgstr "B<Q1>"
563
564 #. type: Plain text
565 #: build/C/man7/epoll.7:310
566 msgid ""
567 "What happens if you register the same file descriptor on an B<epoll> "
568 "instance twice?"
569 msgstr ""
570 "1 つの B<epoll> インスタンスに同じファイルディスクリプタを 2 回登録するとどう"
571 "なるか?"
572
573 #. type: TP
574 #: build/C/man7/epoll.7:310
575 #, no-wrap
576 msgid "B<A1>"
577 msgstr "B<A1>"
578
579 #.  But a descriptor duplicated by fork(2) can't be added to the
580 #.  set, because the [file *, fd] pair is already in the epoll set.
581 #.  That is a somewhat ugly inconsistency.  On the one hand, a child process
582 #.  cannot add the duplicate file descriptor to the epoll set.  (In every
583 #.  other case that I can think of, descriptors duplicated by fork have
584 #.  similar semantics to descriptors duplicated by dup() and friends.)  On
585 #.  the other hand, the very fact that the child has a duplicate of the
586 #.  descriptor means that even if the parent closes its descriptor, then
587 #.  epoll_wait() in the parent will continue to receive notifications for
588 #.  that descriptor because of the duplicated descriptor in the child.
589 #.  See http://thread.gmane.org/gmane.linux.kernel/596462/
590 #.  "epoll design problems with common fork/exec patterns"
591 #.  mtk, Feb 2008
592 #. type: Plain text
593 #: build/C/man7/epoll.7:341
594 msgid ""
595 "You will probably get B<EEXIST>.  However, it is possible to add a duplicate "
596 "(B<dup>(2), B<dup2>(2), B<fcntl>(2)  B<F_DUPFD>)  descriptor to the same "
597 "B<epoll> instance.  This can be a useful technique for filtering events, if "
598 "the duplicate file descriptors are registered with different I<events> masks."
599 msgstr ""
600 "たぶん B<EEXIST> を受け取るだろう。 しかしながら、同じ B<epoll> インスタンス"
601 "に対して複製されたディスクリプタを追加することは可能である (B<dup>(2), "
602 "B<dup2>(2), B<fcntl>(2)  B<F_DUPFD> など)。 複製したファイルディスクリプタを"
603 "異なる I<events> マスクで登録すれば、イベントをフィルタリングするのに この機"
604 "能は有用な手法である。"
605
606 #. type: TP
607 #: build/C/man7/epoll.7:341
608 #, no-wrap
609 msgid "B<Q2>"
610 msgstr "B<Q2>"
611
612 #. type: Plain text
613 #: build/C/man7/epoll.7:349
614 msgid ""
615 "Can two B<epoll> instances wait for the same file descriptor? If so, are "
616 "events reported to both B<epoll> file descriptors?"
617 msgstr ""
618 "2 つの B<epoll> インスタンスが同じファイルディスクリプタを待ち受けることは可"
619 "能か? もし可能であれば、イベントは両方の B<epoll> ファイルディスクリプタに報"
620 "告されるか?"
621
622 #. type: TP
623 #: build/C/man7/epoll.7:349
624 #, no-wrap
625 msgid "B<A2>"
626 msgstr "B<A2>"
627
628 #. type: Plain text
629 #: build/C/man7/epoll.7:353
630 msgid ""
631 "Yes, and events would be reported to both.  However, careful programming may "
632 "be needed to do this correctly."
633 msgstr ""
634 "イベントは両方に報告される。 しかしながら、これを正しく扱うには注意深くプログ"
635 "ラミングする必要が あるかもしれない。"
636
637 #. type: TP
638 #: build/C/man7/epoll.7:353
639 #, no-wrap
640 msgid "B<Q3>"
641 msgstr "B<Q3>"
642
643 #. type: Plain text
644 #: build/C/man7/epoll.7:358
645 msgid "Is the B<epoll> file descriptor itself poll/epoll/selectable?"
646 msgstr "B<epoll> ファイルディスクリプタ自身は poll/epoll/select が可能か?"
647
648 #. type: TP
649 #: build/C/man7/epoll.7:358
650 #, no-wrap
651 msgid "B<A3>"
652 msgstr "B<A3>"
653
654 #. type: Plain text
655 #: build/C/man7/epoll.7:365
656 msgid ""
657 "Yes.  If an B<epoll> file descriptor has events waiting then it will "
658 "indicate as being readable."
659 msgstr ""
660 "可能である。 B<epoll> ファイルディスクリプタに処理待ちのイベントがある場合"
661 "は、 読み出し可能だと通知されることだろう。"
662
663 #. type: TP
664 #: build/C/man7/epoll.7:365
665 #, no-wrap
666 msgid "B<Q4>"
667 msgstr "B<Q4>"
668
669 #. type: Plain text
670 #: build/C/man7/epoll.7:370
671 msgid ""
672 "What happens if one attempts to put an B<epoll> file descriptor into its own "
673 "file descriptor set?"
674 msgstr ""
675 "B<epoll> ファイルディスクリプタを自身のファイルディスクリプタ集合に 入れよう"
676 "とするとどうなるか?"
677
678 #. type: TP
679 #: build/C/man7/epoll.7:370
680 #, no-wrap
681 msgid "B<A4>"
682 msgstr "B<A4>"
683
684 #. type: Plain text
685 #: build/C/man7/epoll.7:381
686 msgid ""
687 "The B<epoll_ctl>(2)  call will fail (B<EINVAL>).  However, you can add an "
688 "B<epoll> file descriptor inside another B<epoll> file descriptor set."
689 msgstr ""
690 "B<epoll_ctl>(2)  の呼び出しは (B<EINVAL> で) 失敗するだろう。 ただし "
691 "B<epoll> ファイルディスクリプタを他の B<epoll> ファイルディスクリプタ集合の内"
692 "部に追加することは可能である。"
693
694 #. type: TP
695 #: build/C/man7/epoll.7:381
696 #, no-wrap
697 msgid "B<Q5>"
698 msgstr "B<Q5>"
699
700 #. type: Plain text
701 #: build/C/man7/epoll.7:386
702 msgid ""
703 "Can I send an B<epoll> file descriptor over a UNIX domain socket to another "
704 "process?"
705 msgstr ""
706 "B<epoll> ファイルディスクリプタを UNIX ドメインソケットで他のプロセスに送るこ"
707 "とは可能か?"
708
709 #. type: TP
710 #: build/C/man7/epoll.7:386
711 #, no-wrap
712 msgid "B<A5>"
713 msgstr "B<A5>"
714
715 #. type: Plain text
716 #: build/C/man7/epoll.7:392
717 msgid ""
718 "Yes, but it does not make sense to do this, since the receiving process "
719 "would not have copies of the file descriptors in the B<epoll> set."
720 msgstr ""
721 "可能だが、これをすることに意味はない。 なぜなら、受信側のプロセスが B<epoll> "
722 "集合内のファイルディスクリプタのコピーを持っていないからである。"
723
724 #. type: TP
725 #: build/C/man7/epoll.7:392
726 #, no-wrap
727 msgid "B<Q6>"
728 msgstr "B<Q6>"
729
730 #. type: Plain text
731 #: build/C/man7/epoll.7:397
732 msgid ""
733 "Will closing a file descriptor cause it to be removed from all B<epoll> sets "
734 "automatically?"
735 msgstr ""
736 "ファイルディスクリプタをクローズすると、そのファイルディスクリプタは全ての "
737 "B<epoll> 集合から自動的に削除されるか?"
738
739 #. type: TP
740 #: build/C/man7/epoll.7:397
741 #, no-wrap
742 msgid "B<A6>"
743 msgstr "B<A6>"
744
745 #. type: Plain text
746 #: build/C/man7/epoll.7:425
747 msgid ""
748 "Yes, but be aware of the following point.  A file descriptor is a reference "
749 "to an open file description (see B<open>(2)).  Whenever a descriptor is "
750 "duplicated via B<dup>(2), B<dup2>(2), B<fcntl>(2)  B<F_DUPFD>, or B<fork>"
751 "(2), a new file descriptor referring to the same open file description is "
752 "created.  An open file description continues to exist until all file "
753 "descriptors referring to it have been closed.  A file descriptor is removed "
754 "from an B<epoll> set only after all the file descriptors referring to the "
755 "underlying open file description have been closed (or before if the "
756 "descriptor is explicitly removed using B<epoll_ctl>(2)  B<EPOLL_CTL_DEL>).  "
757 "This means that even after a file descriptor that is part of an B<epoll> set "
758 "has been closed, events may be reported for that file descriptor if other "
759 "file descriptors referring to the same underlying file description remain "
760 "open."
761 msgstr ""
762 "削除されるが、以下の点に注意が必要である。 ファイルディスクリプタはオープン"
763 "ファイル記述 (B<open>(2)  参照) への参照である。 ディスクリプタの複製を "
764 "B<dup>(2), B<dup2>(2), B<fcntl>(2)  の B<F_DUPFD> や B<fork>(2)  経由で行う度"
765 "に、同じオープンファイル記述を参照する新規のファイル ディスクリプタが生成され"
766 "る。 オープンファイル記述自体は、自身を参照する全てのファイルディスクリプタ "
767 "がクローズされるまで存在し続ける。 ファイルディスクリプタが B<epoll> 集合から"
768 "削除されるのは、対応するオープンファイル記述を参照している 全てのファイルディ"
769 "スクリプタがクローズされた後である (B<epoll_ctl>(2)  B<EPOLL_CTL_DEL> を使っ"
770 "てそのディスクリプタを明示的に削除した場合にも削除される)。 このことは、 "
771 "B<epoll> 集合に属しているあるファイルディスクリプタをクローズした後であって"
772 "も、 同じファイル記述を参照する他のファイルディスクリプタがオープンされている"
773 "間は、 クローズしたファイルディスクリプタ宛にイベントが報告される可能性がある"
774 "と いうことを意味する。"
775
776 #. type: TP
777 #: build/C/man7/epoll.7:425
778 #, no-wrap
779 msgid "B<Q7>"
780 msgstr "B<Q7>"
781
782 #. type: Plain text
783 #: build/C/man7/epoll.7:430
784 msgid ""
785 "If more than one event occurs between B<epoll_wait>(2)  calls, are they "
786 "combined or reported separately?"
787 msgstr ""
788 "2 つ以上のイベントが B<epoll_wait>(2)  コールの間に発生した場合、それらはまと"
789 "めて報告されるか、 それとも別々に報告されるか?"
790
791 #. type: TP
792 #: build/C/man7/epoll.7:430
793 #, no-wrap
794 msgid "B<A7>"
795 msgstr "B<A7>"
796
797 #. type: Plain text
798 #: build/C/man7/epoll.7:433
799 msgid "They will be combined."
800 msgstr "まとめて報告されるだろう。"
801
802 #. type: TP
803 #: build/C/man7/epoll.7:433
804 #, no-wrap
805 msgid "B<Q8>"
806 msgstr "B<Q8>"
807
808 #. type: Plain text
809 #: build/C/man7/epoll.7:437
810 msgid ""
811 "Does an operation on a file descriptor affect the already collected but not "
812 "yet reported events?"
813 msgstr ""
814 "ファイルディスクリプタに対する操作は、 既に集められているがまだ報告されていな"
815 "いイベントに影響するか?"
816
817 #. type: TP
818 #: build/C/man7/epoll.7:437
819 #, no-wrap
820 msgid "B<A8>"
821 msgstr "B<A8>"
822
823 #. type: Plain text
824 #: build/C/man7/epoll.7:443
825 msgid ""
826 "You can do two operations on an existing file descriptor.  Remove would be "
827 "meaningless for this case.  Modify will reread available I/O."
828 msgstr ""
829 "既存のファイルディスクリプタに対して 2 つの操作を行うことができる。 この場"
830 "合、削除には意味がない。 変更すると、使用可能な I/O が再び読み込まれる。"
831
832 #. type: TP
833 #: build/C/man7/epoll.7:443
834 #, no-wrap
835 msgid "B<Q9>"
836 msgstr "B<Q9>"
837
838 #. type: Plain text
839 #: build/C/man7/epoll.7:451
840 msgid ""
841 "Do I need to continuously read/write a file descriptor until B<EAGAIN> when "
842 "using the B<EPOLLET> flag (edge-triggered behavior) ?"
843 msgstr ""
844 "B<EPOLLET> フラグ (エッジトリガ動作) を使っている場合、 B<EAGAIN> を受け取る"
845 "まで、 継続してファイルディスクリプタを読み書きする必要があるか?"
846
847 #. type: TP
848 #: build/C/man7/epoll.7:451
849 #, no-wrap
850 msgid "B<A9>"
851 msgstr "B<A9>"
852
853 #. type: Plain text
854 #: build/C/man7/epoll.7:461
855 msgid ""
856 "Receiving an event from B<epoll_wait>(2)  should suggest to you that such "
857 "file descriptor is ready for the requested I/O operation.  You must consider "
858 "it ready until the next (nonblocking)  read/write yields B<EAGAIN>.  When "
859 "and how you will use the file descriptor is entirely up to you."
860 msgstr ""
861 "B<epoll_wait>(2)  からイベントを受け取ることは、 そのファイルディスクリプタが"
862 "要求された I/O 操作に対して準備済みである、 ということをユーザに示すものであ"
863 "る。 次の (ブロックしない) read/write で B<EAGAIN> を受け取るまではファイル"
864 "ディスクリプタは準備済みであると 考えなければならない。 そのファイルディスク"
865 "リプタをいつどのように使うかは、 全くユーザに任されてる。"
866
867 #. type: Plain text
868 #: build/C/man7/epoll.7:467
869 msgid ""
870 "For packet/token-oriented files (e.g., datagram socket, terminal in "
871 "canonical mode), the only way to detect the end of the read/write I/O space "
872 "is to continue to read/write until B<EAGAIN>."
873 msgstr ""
874 "パケット指向やトークン指向のファイル (例えば、データグラムソケット、 "
875 "canonical モードの端末) では、 読み込み用 / 書き込み用の I/O 空間の末尾を検知"
876 "する唯一の方法は B<EAGAIN> になるまで read/write を行うことである。"
877
878 #. type: Plain text
879 #: build/C/man7/epoll.7:483
880 msgid ""
881 "For stream-oriented files (e.g., pipe, FIFO, stream socket), the condition "
882 "that the read/write I/O space is exhausted can also be detected by checking "
883 "the amount of data read from / written to the target file descriptor.  For "
884 "example, if you call B<read>(2)  by asking to read a certain amount of data "
885 "and B<read>(2)  returns a lower number of bytes, you can be sure of having "
886 "exhausted the read I/O space for the file descriptor.  The same is true when "
887 "writing using B<write>(2).  (Avoid this latter technique if you cannot "
888 "guarantee that the monitored file descriptor always refers to a stream-"
889 "oriented file.)"
890 msgstr ""
891 "ストリーム指向のファイル (例えば、パイプ、FIFO、ストリームソケット) では、 読"
892 "み込み用 / 書き込み用の I/O 空間が使い尽くされた状態は、 対象となるファイル"
893 "ディスクリプタから読み込んだデータ量または 書き込んだデータ量をチェックするこ"
894 "とでも検知できる。 例えば、ある特定の量のデータを読み込むために B<read>(2)  "
895 "を呼んだときに、 B<read>(2)  が返したバイト数がそれより少なかった場合、 その"
896 "ファイルディスクリプタの読み込み用 I/O 空間が 使い尽くされたことが分かる。 "
897 "B<write>(2)  を使って書き込みをするときも、同じことが言える (監視しているファ"
898 "イルディスクリプタが常にストリーム指向のファイルを 参照していることを保証でき"
899 "ない場合には、後者の手法の使用を避けること)。"
900
901 #. type: SS
902 #: build/C/man7/epoll.7:483
903 #, no-wrap
904 msgid "Possible Pitfalls and Ways to Avoid Them"
905 msgstr "ありがちな落とし穴と回避方法"
906
907 #. type: TP
908 #: build/C/man7/epoll.7:484
909 #, no-wrap
910 msgid "B<o Starvation (edge-triggered)>"
911 msgstr "B<o 飢餓 (starvation) (エッジトリガ)>"
912
913 #. type: Plain text
914 #: build/C/man7/epoll.7:492
915 msgid ""
916 "If there is a large amount of I/O space, it is possible that by trying to "
917 "drain it the other files will not get processed causing starvation.  (This "
918 "problem is not specific to B<epoll>.)"
919 msgstr ""
920 "大きな I/O 空間がある場合、 その I/O 空間のデータを全て処理 (drain) しようと"
921 "すると、 他のファイルが処理されず、飢餓を発生させることがある (この問題は "
922 "B<epoll> に固有のものではない)。"
923
924 #. type: Plain text
925 #: build/C/man7/epoll.7:500
926 msgid ""
927 "The solution is to maintain a ready list and mark the file descriptor as "
928 "ready in its associated data structure, thereby allowing the application to "
929 "remember which files need to be processed but still round robin amongst all "
930 "the ready files.  This also supports ignoring subsequent events you receive "
931 "for file descriptors that are already ready."
932 msgstr ""
933 "この問題の解決法は、準備済み状態のリストを管理して、 関連する data 構造体の中"
934 "でファイルディスクリプタが 利用可能であるとマークすることである。 それによっ"
935 "て、利用可能なすべてのファイルの中で どのファイルを処理する必要があるかを憶え"
936 "ることができ、 しかも順番に処理 (round robin) することができる。 既に利用可能"
937 "であるファイルディスクリプタに対して それ以後に受け取るイベントを無視すること"
938 "もできる。"
939
940 #. type: TP
941 #: build/C/man7/epoll.7:500
942 #, no-wrap
943 msgid "B<o If using an event cache...>"
944 msgstr "B<o イベントキャッシュを使っている場合>"
945
946 #. type: Plain text
947 #: build/C/man7/epoll.7:516
948 msgid ""
949 "If you use an event cache or store all the file descriptors returned from "
950 "B<epoll_wait>(2), then make sure to provide a way to mark its closure "
951 "dynamically (i.e., caused by a previous event's processing).  Suppose you "
952 "receive 100 events from B<epoll_wait>(2), and in event #47 a condition "
953 "causes event #13 to be closed.  If you remove the structure and B<close>(2)  "
954 "the file descriptor for event #13, then your event cache might still say "
955 "there are events waiting for that file descriptor causing confusion."
956 msgstr ""
957 "イベントキャッシュを使っている場合、 または B<epoll_wait>(2)  から返された全"
958 "てのファイルディスクリプタを格納している場合、 クローズされたことを動的にマー"
959 "クする (つまり前のイベントの処理によってマークされる) 方法を提供すべきであ"
960 "る。 B<epoll_wait>(2)  から 100 個のイベントを受け取り、 イベント #47 ではあ"
961 "る条件でイベント #13 が閉じられると仮定する。 イベント #13 の構造体を削除し"
962 "ファイルディスクリプタを B<close>(2)  すると、イベントキャッシュはそのファイ"
963 "ルディスクリプタを待つイベントが 存在するといって、混乱が起きる。"
964
965 #. type: Plain text
966 #: build/C/man7/epoll.7:527
967 msgid ""
968 "One solution for this is to call, during the processing of event 47, "
969 "B<epoll_ctl>(B<EPOLL_CTL_DEL>)  to delete file descriptor 13 and B<close>"
970 "(2), then mark its associated data structure as removed and link it to a "
971 "cleanup list.  If you find another event for file descriptor 13 in your "
972 "batch processing, you will discover the file descriptor had been previously "
973 "removed and there will be no confusion."
974 msgstr ""
975 "この問題を解決する 1 つの方法は、イベント 47 の処理をしている間に、 ファイル"
976 "ディスクリプタ 13 を削除して B<close>(2)  するために B<epoll_ctl>"
977 "(B<EPOLL_CTL_DEL>)  を呼び出し、関連付けられた data 構造体を削除済みとマーク"
978 "して、 クリーンアップリストにリンクすることである。 バッチ処理の中でファイル"
979 "ディスクリプタ 13 についての 他のイベントを見つけた場合、 そのファイルディス"
980 "クリプタが以前に削除されたものであると分かるので、 混乱は起きない。"
981
982 #. type: SH
983 #: build/C/man7/epoll.7:527 build/C/man2/epoll_create.2:114
984 #: build/C/man2/epoll_ctl.2:224 build/C/man2/epoll_wait.2:174
985 #: build/C/man2/poll.2:286
986 #, no-wrap
987 msgid "VERSIONS"
988 msgstr "バージョン"
989
990 #.  Its interface should be finalized in Linux kernel 2.5.66.
991 #. type: Plain text
992 #: build/C/man7/epoll.7:533
993 msgid ""
994 "The B<epoll> API was introduced in Linux kernel 2.5.44.  Support was added "
995 "to glibc in version 2.3.2."
996 msgstr ""
997 "B<epoll> API は Linux カーネル 2.5.44 に導入された。 glibc でのサポートはバー"
998 "ジョン 2.3.2 で追加された。"
999
1000 #. type: SH
1001 #: build/C/man7/epoll.7:533 build/C/man2/epoll_create.2:124
1002 #: build/C/man2/epoll_ctl.2:229 build/C/man2/epoll_wait.2:184
1003 #: build/C/man2/poll.2:306
1004 #, no-wrap
1005 msgid "CONFORMING TO"
1006 msgstr "準拠"
1007
1008 #. type: Plain text
1009 #: build/C/man7/epoll.7:542
1010 msgid ""
1011 "The B<epoll> API is Linux-specific.  Some other systems provide similar "
1012 "mechanisms, for example, FreeBSD has I<kqueue>, and Solaris has I</dev/poll>."
1013 msgstr ""
1014 "B<epoll> API は Linux 固有である。 他のシステムでも同様の機構が提供されている"
1015 "場合がある。 例えば、FreeBSD の I<kqueue> や Solaris の I</dev/poll> などであ"
1016 "る。"
1017
1018 #. type: SH
1019 #: build/C/man7/epoll.7:542 build/C/man2/epoll_create.2:133
1020 #: build/C/man2/epoll_ctl.2:252 build/C/man2/epoll_wait.2:187
1021 #: build/C/man2/poll.2:338
1022 #, no-wrap
1023 msgid "SEE ALSO"
1024 msgstr "関連項目"
1025
1026 #. type: Plain text
1027 #: build/C/man7/epoll.7:547
1028 msgid ""
1029 "B<epoll_create>(2), B<epoll_create1>(2), B<epoll_ctl>(2), B<epoll_wait>(2)"
1030 msgstr ""
1031 "B<epoll_create>(2), B<epoll_create1>(2), B<epoll_ctl>(2), B<epoll_wait>(2)"
1032
1033 #. type: SH
1034 #: build/C/man7/epoll.7:547 build/C/man2/epoll_create.2:138
1035 #: build/C/man2/epoll_ctl.2:257 build/C/man2/epoll_wait.2:191
1036 #: build/C/man2/poll.2:342
1037 #, no-wrap
1038 msgid "COLOPHON"
1039 msgstr "この文書について"
1040
1041 #. type: Plain text
1042 #: build/C/man7/epoll.7:554 build/C/man2/epoll_create.2:145
1043 #: build/C/man2/epoll_ctl.2:264 build/C/man2/epoll_wait.2:198
1044 #: build/C/man2/poll.2:349
1045 msgid ""
1046 "This page is part of release 3.37 of the Linux I<man-pages> project.  A "
1047 "description of the project, and information about reporting bugs, can be "
1048 "found at http://www.kernel.org/doc/man-pages/."
1049 msgstr ""
1050 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.37 の一部である。\n"
1051 "プロジェクトの説明とバグ報告に関する情報は\n"
1052 "http://www.kernel.org/doc/man-pages/ に書かれている。"
1053
1054 #. type: TH
1055 #: build/C/man2/epoll_create.2:25
1056 #, no-wrap
1057 msgid "EPOLL_CREATE"
1058 msgstr "EPOLL_CREATE"
1059
1060 #. type: TH
1061 #: build/C/man2/epoll_create.2:25 build/C/man2/epoll_ctl.2:21
1062 #: build/C/man2/epoll_wait.2:23
1063 #, fuzzy, no-wrap
1064 #| msgid "2010-09-20"
1065 msgid "2010-12-03"
1066 msgstr "2010-09-20"
1067
1068 #. type: Plain text
1069 #: build/C/man2/epoll_create.2:28
1070 msgid "epoll_create, epoll_create1 - open an epoll file descriptor"
1071 msgstr ""
1072 "epoll_create, epoll_create1 - epoll ファイルディスクリプタをオープンする"
1073
1074 #. type: Plain text
1075 #: build/C/man2/epoll_create.2:31 build/C/man2/epoll_wait.2:29
1076 #, no-wrap
1077 msgid "B<#include E<lt>sys/epoll.hE<gt>>\n"
1078 msgstr "B<#include E<lt>sys/epoll.hE<gt>>\n"
1079
1080 #. type: Plain text
1081 #: build/C/man2/epoll_create.2:34
1082 #, no-wrap
1083 msgid ""
1084 "B<int epoll_create(int >I<size>B<);>\n"
1085 "B<int epoll_create1(int >I<flags>B<);>\n"
1086 msgstr ""
1087 "B<int epoll_create(int >I<size>B<);>\n"
1088 "B<int epoll_create1(int >I<flags>B<);>\n"
1089
1090 #. type: Plain text
1091 #: build/C/man2/epoll_create.2:48
1092 #, fuzzy
1093 #| msgid ""
1094 #| "B<epoll_create>()  creates an epoll \"instance\", requesting the kernel "
1095 #| "to allocate an event backing store dimensioned for I<size> descriptors.  "
1096 #| "The I<size> is not the maximum size of the backing store but just a hint "
1097 #| "to the kernel about how to dimension internal structures.  (Nowadays, "
1098 #| "I<size> is ignored; see NOTES below.)"
1099 msgid ""
1100 "B<epoll_create>()  creates an epoll \"instance\", requesting the kernel to "
1101 "allocate an event backing store dimensioned for I<size> descriptors.  The "
1102 "I<size> is not the maximum size of the backing store but just a hint to the "
1103 "kernel about how to dimension internal structures.  (Nowadays, I<size> is "
1104 "unused; see NOTES below.)"
1105 msgstr ""
1106 "B<epoll_create>()  は、 I<size> 個のディスクリプタを保持できる大きさのイベン"
1107 "トバッキング ストアの割り当てをカーネルに対して要求することにより、 epoll "
1108 "「インスタンス」を作成する。 I<size> はバッキングストアの最大サイズではな"
1109 "く、 内部構造の大きさをどの位にするかをカーネルに知らせるヒントでしかない。 "
1110 "(現在は I<size> は無視される。下記の「注意」を参照。)"
1111
1112 #. type: Plain text
1113 #: build/C/man2/epoll_create.2:61
1114 msgid ""
1115 "B<epoll_create>()  returns a file descriptor referring to the new epoll "
1116 "instance.  This file descriptor is used for all the subsequent calls to the "
1117 "B<epoll> interface.  When no longer required, the file descriptor returned "
1118 "by B<epoll_create>()  should be closed by using B<close>(2).  When all file "
1119 "descriptors referring to an epoll instance have been closed, the kernel "
1120 "destroys the instance and releases the associated resources for reuse."
1121 msgstr ""
1122 "B<epoll_create>()  は、新しい epoll インスタンスを参照するファイルディスクリ"
1123 "プタを返す。 このファイルディスクリプタは、その後の B<epoll> インタフェースの"
1124 "呼び出しに使われる。 もう必要でなくなった場合は、 B<epoll_create>()  で返され"
1125 "たファイルディスクリプタは B<close>(2)  を使ってクローズされるべきである。 あ"
1126 "る epoll インスタンスを参照する全てのファイルディスクリプタがクローズされる"
1127 "と、 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、 再使用"
1128 "できるようにする。"
1129
1130 #. type: Plain text
1131 #: build/C/man2/epoll_create.2:73
1132 msgid ""
1133 "If I<flags> is 0, then, other than the fact that the obsolete I<size> "
1134 "argument is dropped, B<epoll_create1>()  is the same as B<epoll_create>().  "
1135 "The following value can be included in I<flags> to obtain different behavior:"
1136 msgstr ""
1137 "B<epoll_create1>()  は、 I<flags> が 0 の場合、現在では使われていない "
1138 "I<size> 引き数がなくなっている点を除けば B<epoll_create>()  と同じである。 "
1139 "I<flags> に以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさ"
1140 "せることができる。"
1141
1142 #. type: TP
1143 #: build/C/man2/epoll_create.2:73
1144 #, no-wrap
1145 msgid "B<EPOLL_CLOEXEC>"
1146 msgstr "B<EPOLL_CLOEXEC>"
1147
1148 #. type: Plain text
1149 #: build/C/man2/epoll_create.2:83
1150 msgid ""
1151 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
1152 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
1153 "may be useful."
1154 msgstr ""
1155 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
1156 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
1157 "B<O_CLOEXEC> フラグの説明を参照のこと。"
1158
1159 #. type: SH
1160 #: build/C/man2/epoll_create.2:83 build/C/man2/epoll_ctl.2:156
1161 #: build/C/man2/epoll_wait.2:137 build/C/man2/poll.2:257
1162 #, no-wrap
1163 msgid "RETURN VALUE"
1164 msgstr "返り値"
1165
1166 #. type: Plain text
1167 #: build/C/man2/epoll_create.2:90
1168 msgid ""
1169 "On success, these system calls return a nonnegative file descriptor.  On "
1170 "error, -1 is returned, and I<errno> is set to indicate the error."
1171 msgstr ""
1172 "成功すると、これらのシステムコールは 非負のファイルディスクリプタを返す。 エ"
1173 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
1174
1175 #. type: SH
1176 #: build/C/man2/epoll_create.2:90 build/C/man2/epoll_ctl.2:165
1177 #: build/C/man2/epoll_wait.2:149 build/C/man2/poll.2:267
1178 #, no-wrap
1179 msgid "ERRORS"
1180 msgstr "エラー"
1181
1182 #. type: TP
1183 #: build/C/man2/epoll_create.2:91 build/C/man2/epoll_create.2:95
1184 #: build/C/man2/epoll_ctl.2:180 build/C/man2/epoll_wait.2:166
1185 #: build/C/man2/poll.2:276
1186 #, no-wrap
1187 msgid "B<EINVAL>"
1188 msgstr "B<EINVAL>"
1189
1190 #. type: Plain text
1191 #: build/C/man2/epoll_create.2:95
1192 msgid "I<size> is not positive."
1193 msgstr "I<size> が正でない。"
1194
1195 #. type: Plain text
1196 #: build/C/man2/epoll_create.2:100
1197 msgid "(B<epoll_create1>())  Invalid value specified in I<flags>."
1198 msgstr "(B<epoll_create1>())  I<flags> に無効な値が指定された。"
1199
1200 #. type: TP
1201 #: build/C/man2/epoll_create.2:100
1202 #, no-wrap
1203 msgid "B<EMFILE>"
1204 msgstr "B<EMFILE>"
1205
1206 #. type: Plain text
1207 #: build/C/man2/epoll_create.2:108
1208 msgid ""
1209 "The per-user limit on the number of epoll instances imposed by I</proc/sys/"
1210 "fs/epoll/max_user_instances> was encountered.  See B<epoll>(7)  for further "
1211 "details."
1212 msgstr ""
1213 "I</proc/sys/fs/epoll/max_user_instances> によって指定されている、epoll インス"
1214 "タンスのユーザー単位の制限に達した。 更なる詳細については B<epoll>(7)  を参照"
1215 "のこと。"
1216
1217 #. type: TP
1218 #: build/C/man2/epoll_create.2:108
1219 #, no-wrap
1220 msgid "B<ENFILE>"
1221 msgstr "B<ENFILE>"
1222
1223 #. type: Plain text
1224 #: build/C/man2/epoll_create.2:111
1225 msgid "The system limit on the total number of open files has been reached."
1226 msgstr "オープンされたファイルの総数がシステム制限に達した。"
1227
1228 #. type: TP
1229 #: build/C/man2/epoll_create.2:111 build/C/man2/epoll_ctl.2:203
1230 #: build/C/man2/poll.2:283
1231 #, no-wrap
1232 msgid "B<ENOMEM>"
1233 msgstr "B<ENOMEM>"
1234
1235 #. type: Plain text
1236 #: build/C/man2/epoll_create.2:114
1237 msgid "There was insufficient memory to create the kernel object."
1238 msgstr "カーネルオブジェクトを作成するのに十分なメモリがなかった。"
1239
1240 #. type: Plain text
1241 #: build/C/man2/epoll_create.2:118
1242 #, fuzzy
1243 #| msgid ""
1244 #| "The B<epoll> API was introduced in Linux kernel 2.5.44.  Support was "
1245 #| "added to glibc in version 2.3.2."
1246 msgid ""
1247 "B<epoll_create>()  was added to the kernel in version 2.6.  Library support "
1248 "is provided in glibc starting with version 2.3.2."
1249 msgstr ""
1250 "B<epoll> API は Linux カーネル 2.5.44 に導入された。 glibc でのサポートはバー"
1251 "ジョン 2.3.2 で追加された。"
1252
1253 #.  To be precise: kernel 2.5.44.
1254 #.  The interface should be finalized by Linux kernel 2.5.66.
1255 #. type: Plain text
1256 #: build/C/man2/epoll_create.2:124
1257 msgid ""
1258 "B<epoll_create1>()  was added to the kernel in version 2.6.27.  Library "
1259 "support is provided in glibc starting with version 2.9."
1260 msgstr ""
1261
1262 #. type: Plain text
1263 #: build/C/man2/epoll_create.2:127
1264 #, fuzzy
1265 #| msgid ""
1266 #| "B<epoll_create>()  is Linux-specific, and was introduced in kernel 2.5.44."
1267 msgid "B<epoll_create>()  is Linux-specific."
1268 msgstr "B<epoll_create>()  は Linux 独自であり、カーネル 2.5.44 で導入された。"
1269
1270 #. type: SH
1271 #: build/C/man2/epoll_create.2:127 build/C/man2/epoll_ctl.2:233
1272 #: build/C/man2/poll.2:312
1273 #, no-wrap
1274 msgid "NOTES"
1275 msgstr "注意"
1276
1277 #. type: Plain text
1278 #: build/C/man2/epoll_create.2:133
1279 #, fuzzy
1280 #| msgid ""
1281 #| "Since Linux 2.6.8, the I<size> argument is unused.  (The kernel "
1282 #| "dynamically sizes the required data structures without needing this "
1283 #| "initial hint.)"
1284 msgid ""
1285 "Since Linux 2.6.8, the I<size> argument is unused, but must be greater than "
1286 "zero.  (The kernel dynamically sizes the required data structures without "
1287 "needing this initial hint.)"
1288 msgstr ""
1289 "Linux 2.6.8 以降では、 I<size> 引き数は使用されない (カーネルは、動的に必要な"
1290 "データ構造の大きさを決定し、 最初のヒントを必要しない)。"
1291
1292 #. type: Plain text
1293 #: build/C/man2/epoll_create.2:138
1294 msgid "B<close>(2), B<epoll_ctl>(2), B<epoll_wait>(2), B<epoll>(7)"
1295 msgstr "B<close>(2), B<epoll_ctl>(2), B<epoll_wait>(2), B<epoll>(7)"
1296
1297 #. type: TH
1298 #: build/C/man2/epoll_ctl.2:21
1299 #, no-wrap
1300 msgid "EPOLL_CTL"
1301 msgstr "EPOLL_CTL"
1302
1303 #. type: Plain text
1304 #: build/C/man2/epoll_ctl.2:24
1305 msgid "epoll_ctl - control interface for an epoll descriptor"
1306 msgstr "epoll_ctl - epoll ディスクリプタのインタフェースを操作する"
1307
1308 #. type: Plain text
1309 #: build/C/man2/epoll_ctl.2:29
1310 msgid ""
1311 "B<int epoll_ctl(int >I<epfd>B<, int >I<op>B<, int >I<fd>B<, struct "
1312 "epoll_event *>I<event>B<);>"
1313 msgstr ""
1314 "B<int epoll_ctl(int >I<epfd>B<, int >I<op>B<, int >I<fd>B<, struct "
1315 "epoll_event *>I<event>B<);>"
1316
1317 #. type: Plain text
1318 #: build/C/man2/epoll_ctl.2:37
1319 msgid ""
1320 "This system call performs control operations on the epoll instance referred "
1321 "to by the file descriptor I<epfd>.  It requests that the operation I<op> be "
1322 "performed for the target file descriptor, I<fd>."
1323 msgstr ""
1324 "このシステムコールは、ファイルディスクリプタ I<epfd> が参照する epoll インス"
1325 "タンスに対する操作を行う。 対象のファイルディスクリプタ I<fd> に対して、操作 "
1326 "I<op> の実行が要求される。"
1327
1328 #. type: Plain text
1329 #: build/C/man2/epoll_ctl.2:41
1330 msgid "Valid values for the I<op> argument are :"
1331 msgstr "I<op> 引き数に指定できる有効な値は以下の通りである。"
1332
1333 #. type: TP
1334 #: build/C/man2/epoll_ctl.2:41
1335 #, no-wrap
1336 msgid "B<EPOLL_CTL_ADD>"
1337 msgstr "B<EPOLL_CTL_ADD>"
1338
1339 #. type: Plain text
1340 #: build/C/man2/epoll_ctl.2:53
1341 msgid ""
1342 "Register the target file descriptor I<fd> on the B<epoll> instance referred "
1343 "to by the file descriptor I<epfd> and associate the event I<event> with the "
1344 "internal file linked to I<fd>."
1345 msgstr ""
1346 "対象のファイルディスクリプタ I<fd> をファイルディスクリプタ I<epfd> が参照す"
1347 "る B<epoll> インスタンスに登録し、イベント I<event> を I<fd> に結び付けられた"
1348 "内部ファイルに関連付ける。"
1349
1350 #. type: TP
1351 #: build/C/man2/epoll_ctl.2:53
1352 #, no-wrap
1353 msgid "B<EPOLL_CTL_MOD>"
1354 msgstr "B<EPOLL_CTL_MOD>"
1355
1356 #. type: Plain text
1357 #: build/C/man2/epoll_ctl.2:59
1358 msgid ""
1359 "Change the event I<event> associated with the target file descriptor I<fd>."
1360 msgstr ""
1361 "イベント I<event> を対象のファイルディスクリプタ I<fd> に関連付けるように変更"
1362 "する。"
1363
1364 #. type: TP
1365 #: build/C/man2/epoll_ctl.2:59
1366 #, no-wrap
1367 msgid "B<EPOLL_CTL_DEL>"
1368 msgstr "B<EPOLL_CTL_DEL>"
1369
1370 #. type: Plain text
1371 #: build/C/man2/epoll_ctl.2:70
1372 msgid ""
1373 "Remove (deregister) the target file descriptor I<fd> from the B<epoll> "
1374 "instance referred to by I<epfd>.  The I<event> is ignored and can be NULL "
1375 "(but see BUGS below)."
1376 msgstr ""
1377 "対象のファイルディスクリプタ I<fd> を I<epfd> が参照する B<epoll> インスタン"
1378 "スから削除する。 I<event> 引き数は無視されるので、NULL にすることもできる (但"
1379 "し、下記の「バグ」を参照)。"
1380
1381 #. type: Plain text
1382 #: build/C/man2/epoll_ctl.2:78
1383 msgid ""
1384 "The I<event> argument describes the object linked to the file descriptor "
1385 "I<fd>.  The I<struct epoll_event> is defined as :"
1386 msgstr ""
1387 "I<event> 引き数は、ファイルディスクリプタ I<fd> にリンクされたオブジェクトを"
1388 "表す。 I<struct epoll_event> は以下のように定義される:"
1389
1390 #. type: Plain text
1391 #: build/C/man2/epoll_ctl.2:87
1392 #, no-wrap
1393 msgid ""
1394 "typedef union epoll_data {\n"
1395 "    void        *ptr;\n"
1396 "    int          fd;\n"
1397 "    uint32_t     u32;\n"
1398 "    uint64_t     u64;\n"
1399 "} epoll_data_t;\n"
1400 msgstr ""
1401 "typedef union epoll_data {\n"
1402 "    void        *ptr;\n"
1403 "    int          fd;\n"
1404 "    uint32_t     u32;\n"
1405 "    uint64_t     u64;\n"
1406 "} epoll_data_t;\n"
1407
1408 #. type: Plain text
1409 #: build/C/man2/epoll_ctl.2:92
1410 #, no-wrap
1411 msgid ""
1412 "struct epoll_event {\n"
1413 "    uint32_t     events;      /* Epoll events */\n"
1414 "    epoll_data_t data;        /* User data variable */\n"
1415 "};\n"
1416 msgstr ""
1417 "struct epoll_event {\n"
1418 "    uint32_t     events;      /* epoll イベント */\n"
1419 "    epoll_data_t data;        /* ユーザデータ変数 */\n"
1420 "};\n"
1421
1422 #. type: Plain text
1423 #: build/C/man2/epoll_ctl.2:99
1424 msgid ""
1425 "The I<events> member is a bit set composed using the following available "
1426 "event types:"
1427 msgstr ""
1428 "I<events> メンバは、以下のような使用可能なイベントタイプを使って構成された "
1429 "ビットセットである。"
1430
1431 #. type: TP
1432 #: build/C/man2/epoll_ctl.2:99
1433 #, no-wrap
1434 msgid "B<EPOLLIN>"
1435 msgstr "B<EPOLLIN>"
1436
1437 #. type: Plain text
1438 #: build/C/man2/epoll_ctl.2:104
1439 msgid "The associated file is available for B<read>(2)  operations."
1440 msgstr "関連付けられたファイルに対して、 B<read>(2)  操作が可能である。"
1441
1442 #. type: TP
1443 #: build/C/man2/epoll_ctl.2:104
1444 #, no-wrap
1445 msgid "B<EPOLLOUT>"
1446 msgstr "B<EPOLLOUT>"
1447
1448 #. type: Plain text
1449 #: build/C/man2/epoll_ctl.2:109
1450 msgid "The associated file is available for B<write>(2)  operations."
1451 msgstr "関連付けられたファイルに対して、 B<write>(2)  操作が可能である。"
1452
1453 #. type: TP
1454 #: build/C/man2/epoll_ctl.2:109
1455 #, no-wrap
1456 msgid "B<EPOLLRDHUP> (since Linux 2.6.17)"
1457 msgstr "B<EPOLLRDHUP\">(LinuxB<2.6.17>以降)\""
1458
1459 #. type: Plain text
1460 #: build/C/man2/epoll_ctl.2:115
1461 msgid ""
1462 "Stream socket peer closed connection, or shut down writing half of "
1463 "connection.  (This flag is especially useful for writing simple code to "
1464 "detect peer shutdown when using Edge Triggered monitoring.)"
1465 msgstr ""
1466 "ストリームソケットの他端が、コネクションの close 、 またはコネクションの書き"
1467 "込み側の shutdown を行った。 (このフラグを使うと、エッジトリガの監視を行う場"
1468 "合に、 通信のもう一端が閉じられたことを検知するコードを 非常に簡潔に書くこと"
1469 "ができる。)"
1470
1471 #. type: TP
1472 #: build/C/man2/epoll_ctl.2:115
1473 #, no-wrap
1474 msgid "B<EPOLLPRI>"
1475 msgstr "B<EPOLLPRI>"
1476
1477 #. type: Plain text
1478 #: build/C/man2/epoll_ctl.2:120
1479 msgid "There is urgent data available for B<read>(2)  operations."
1480 msgstr "B<read>(2)  操作が可能な緊急 (urgent) データがある。"
1481
1482 #. type: TP
1483 #: build/C/man2/epoll_ctl.2:120
1484 #, no-wrap
1485 msgid "B<EPOLLERR>"
1486 msgstr "B<EPOLLERR>"
1487
1488 #. type: Plain text
1489 #: build/C/man2/epoll_ctl.2:126
1490 msgid ""
1491 "Error condition happened on the associated file descriptor.  B<epoll_wait>"
1492 "(2)  will always wait for this event; it is not necessary to set it in "
1493 "I<events>."
1494 msgstr ""
1495 "関連付けられたファイルディスクリプタにエラー条件が起こった。 B<epoll_wait>"
1496 "(2)  は常にこのイベントを待つので、 I<events> に設定する必要はない。"
1497
1498 #. type: TP
1499 #: build/C/man2/epoll_ctl.2:126
1500 #, no-wrap
1501 msgid "B<EPOLLHUP>"
1502 msgstr "B<EPOLLHUP>"
1503
1504 #. type: Plain text
1505 #: build/C/man2/epoll_ctl.2:132
1506 msgid ""
1507 "Hang up happened on the associated file descriptor.  B<epoll_wait>(2)  will "
1508 "always wait for this event; it is not necessary to set it in I<events>."
1509 msgstr ""
1510 "関連付けられたファイルディスクリプタにハングアップが起こった。 B<epoll_wait>"
1511 "(2)  は常にこのイベントを待つので、 I<events> に設定する必要はない。"
1512
1513 #. type: TP
1514 #: build/C/man2/epoll_ctl.2:132
1515 #, no-wrap
1516 msgid "B<EPOLLET>"
1517 msgstr "B<EPOLLET>"
1518
1519 #. type: Plain text
1520 #: build/C/man2/epoll_ctl.2:142
1521 msgid ""
1522 "Sets the Edge Triggered behavior for the associated file descriptor.  The "
1523 "default behavior for B<epoll> is Level Triggered.  See B<epoll>(7)  for more "
1524 "detailed information about Edge and Level Triggered event distribution "
1525 "architectures."
1526 msgstr ""
1527 "関連付けられたファイルディスクリプタに エッジトリガ動作 (Edge Triggered "
1528 "behavior) を設定する。 B<epoll> のデフォルトの動作は、レベルトリガ (Level "
1529 "Triggered) である。 エッジトリガとレベルトリガによるイベント分配機構 (event "
1530 "distribution architectures) についての詳細な情報は、 B<epoll>(7)  を参照する"
1531 "こと。"
1532
1533 #. type: TP
1534 #: build/C/man2/epoll_ctl.2:142
1535 #, no-wrap
1536 msgid "B<EPOLLONESHOT> (since Linux 2.6.2)"
1537 msgstr "B<EPOLLONESHOT> (Linux 2.6.2 以降)"
1538
1539 #. type: Plain text
1540 #: build/C/man2/epoll_ctl.2:156
1541 msgid ""
1542 "Sets the one-shot behavior for the associated file descriptor.  This means "
1543 "that after an event is pulled out with B<epoll_wait>(2)  the associated file "
1544 "descriptor is internally disabled and no other events will be reported by "
1545 "the B<epoll> interface.  The user must call B<epoll_ctl>()  with "
1546 "B<EPOLL_CTL_MOD> to rearm the file descriptor with a new event mask."
1547 msgstr ""
1548 "関連付けられたファイルディスクリプタに 一撃動作 (One-Shot behavior) を設定す"
1549 "る。 これはイベントが B<epoll_wait>(2)  によって引き出された後、 関連付けられ"
1550 "たファイルディスクリプタが内部的に破棄され、 B<epoll> インタフェースによって"
1551 "イベントが報告されなくなることを意味する。 新しいイベントマスクでファイルディ"
1552 "スクリプタを再度有効にするためには、 B<epoll_ctl>()  に B<EPOLL_CTL_MOD> を指"
1553 "定して呼び出さなければならない。 I<op> 引き数に指定できる有効な値は、以下の通"
1554 "り:"
1555
1556 #. type: Plain text
1557 #: build/C/man2/epoll_ctl.2:165
1558 msgid ""
1559 "When successful, B<epoll_ctl>()  returns zero.  When an error occurs, "
1560 "B<epoll_ctl>()  returns -1 and I<errno> is set appropriately."
1561 msgstr ""
1562 "成功した場合、 B<epoll_ctl>()  は 0 を返す。 エラーが起こった場合、 "
1563 "B<epoll_ctl>()  は -1 を返し、 I<errno> を適切に設定する。"
1564
1565 #. type: TP
1566 #: build/C/man2/epoll_ctl.2:166 build/C/man2/epoll_wait.2:150
1567 #, no-wrap
1568 msgid "B<EBADF>"
1569 msgstr "B<EBADF>"
1570
1571 #. type: Plain text
1572 #: build/C/man2/epoll_ctl.2:172
1573 msgid "I<epfd> or I<fd> is not a valid file descriptor."
1574 msgstr "I<epfd> か I<fd> が有効なファイルディスクリプタでない。"
1575
1576 #. type: TP
1577 #: build/C/man2/epoll_ctl.2:172
1578 #, no-wrap
1579 msgid "B<EEXIST>"
1580 msgstr "B<EEXIST>"
1581
1582 #. type: Plain text
1583 #: build/C/man2/epoll_ctl.2:180
1584 msgid ""
1585 "I<op> was B<EPOLL_CTL_ADD>, and the supplied file descriptor I<fd> is "
1586 "already registered with this epoll instance."
1587 msgstr ""
1588 "I<op> が B<EPOLL_CTL_ADD> であり、かつ与えられたファイルディスクリプタ I<fd> "
1589 "がこの epoll インスタンスに既に登録されている。"
1590
1591 #. type: Plain text
1592 #: build/C/man2/epoll_ctl.2:193
1593 msgid ""
1594 "I<epfd> is not an B<epoll> file descriptor, or I<fd> is the same as I<epfd>, "
1595 "or the requested operation I<op> is not supported by this interface."
1596 msgstr ""
1597 "I<epfd> が B<epoll> ファイルディスクリプタでない。 または I<fd> が I<epfd> と"
1598 "同一である。 または要求された操作 I<op> がこのインタフェースでサポートされて"
1599 "いない。"
1600
1601 #. type: TP
1602 #: build/C/man2/epoll_ctl.2:193
1603 #, no-wrap
1604 msgid "B<ENOENT>"
1605 msgstr "B<ENOENT>"
1606
1607 #. type: Plain text
1608 #: build/C/man2/epoll_ctl.2:203
1609 msgid ""
1610 "I<op> was B<EPOLL_CTL_MOD> or B<EPOLL_CTL_DEL>, and I<fd> is not registered "
1611 "with this epoll instance."
1612 msgstr ""
1613 "I<op> が B<EPOLL_CTL_MOD> または B<EPOLL_CTL_DEL> で、かつ I<fd> がこの "
1614 "epoll インスタンスに登録されていない。"
1615
1616 #. type: Plain text
1617 #: build/C/man2/epoll_ctl.2:208
1618 msgid ""
1619 "There was insufficient memory to handle the requested I<op> control "
1620 "operation."
1621 msgstr "要求された I<op> 制御操作を扱うのに十分なメモリがない。"
1622
1623 #. type: TP
1624 #: build/C/man2/epoll_ctl.2:208
1625 #, no-wrap
1626 msgid "B<ENOSPC>"
1627 msgstr "B<ENOSPC>"
1628
1629 #. type: Plain text
1630 #: build/C/man2/epoll_ctl.2:218
1631 msgid ""
1632 "The limit imposed by I</proc/sys/fs/epoll/max_user_watches> was encountered "
1633 "while trying to register (B<EPOLL_CTL_ADD>)  a new file descriptor on an "
1634 "epoll instance.  See B<epoll>(7)  for further details."
1635 msgstr ""
1636 "epoll インスタンスに新しいファイルディスクリプタを登録 (B<EPOLL_CTL_ADD>)  し"
1637 "ようとした際に、 I</proc/sys/fs/epoll/max_user_watches> で決まる上限に達し"
1638 "た。 詳細は B<epoll>(7)  を参照。"
1639
1640 #. type: TP
1641 #: build/C/man2/epoll_ctl.2:218
1642 #, no-wrap
1643 msgid "B<EPERM>"
1644 msgstr "B<EPERM>"
1645
1646 #. type: Plain text
1647 #: build/C/man2/epoll_ctl.2:224
1648 msgid "The target file I<fd> does not support B<epoll>."
1649 msgstr "対象ファイル I<fd> が B<epoll> をサポートしていない。"
1650
1651 #.  To be precise: kernel 2.5.44.
1652 #.  The interface should be finalized by Linux kernel 2.5.66.
1653 #. type: Plain text
1654 #: build/C/man2/epoll_ctl.2:229
1655 #, fuzzy
1656 #| msgid "B<epoll_pwait>()  was added to Linux in kernel 2.6.19."
1657 msgid "B<epoll_ctl>()  was added to the kernel in version 2.6."
1658 msgstr "B<epoll_pwait>()  はカーネル 2.6.19 で Linux に追加された。"
1659
1660 #. type: Plain text
1661 #: build/C/man2/epoll_ctl.2:233
1662 #, fuzzy
1663 #| msgid ""
1664 #| "B<epoll_ctl>()  is Linux-specific, and was introduced in kernel 2.5.44."
1665 msgid ""
1666 "B<epoll_ctl>()  is Linux-specific.  Library support is provided in glibc "
1667 "starting with version 2.3.2."
1668 msgstr "B<epoll_ctl>()  は Linux 独自であり、カーネル 2.5.44 で導入された。"
1669
1670 #. type: Plain text
1671 #: build/C/man2/epoll_ctl.2:238
1672 msgid ""
1673 "The B<epoll> interface supports all file descriptors that support B<poll>(2)."
1674 msgstr ""
1675 "B<epoll> インタフェースは、 B<poll>(2)  に対応している全てのファイルディスク"
1676 "リプタに対応している。"
1677
1678 #. type: SH
1679 #: build/C/man2/epoll_ctl.2:238 build/C/man2/poll.2:334
1680 #, no-wrap
1681 msgid "BUGS"
1682 msgstr "バグ"
1683
1684 #. type: Plain text
1685 #: build/C/man2/epoll_ctl.2:252
1686 msgid ""
1687 "In kernel versions before 2.6.9, the B<EPOLL_CTL_DEL> operation required a "
1688 "non-NULL pointer in I<event>, even though this argument is ignored.  Since "
1689 "Linux 2.6.9, I<event> can be specified as NULL when using B<EPOLL_CTL_DEL>.  "
1690 "Applications that need to be portable to kernels before 2.6.9 should specify "
1691 "a non-NULL pointer in I<event>."
1692 msgstr ""
1693 "Linux 2.6.9 より前では、 B<EPOLL_CTL_DEL> 操作の際、引き数 I<event> に (たと"
1694 "え無視される場合であっても) NULL でないポインタを渡す必要があった。 カーネル "
1695 "2.6.9 以降では、 B<EPOLL_CTL_DEL> を使う際に I<event> に NULL を指定できるよ"
1696 "うになっている。 2.6.9 より前のカーネルへの移植性が必要なアプリケーションで"
1697 "は、 I<event> に NULL でないポインタを指定すべきである。"
1698
1699 #. type: Plain text
1700 #: build/C/man2/epoll_ctl.2:257
1701 msgid "B<epoll_create>(2), B<epoll_wait>(2), B<poll>(2), B<epoll>(7)"
1702 msgstr "B<epoll_create>(2), B<epoll_wait>(2), B<poll>(2), B<epoll>(7)"
1703
1704 #. type: TH
1705 #: build/C/man2/epoll_wait.2:23
1706 #, no-wrap
1707 msgid "EPOLL_WAIT"
1708 msgstr "EPOLL_WAIT"
1709
1710 #. type: Plain text
1711 #: build/C/man2/epoll_wait.2:26
1712 msgid ""
1713 "epoll_wait, epoll_pwait - wait for an I/O event on an epoll file descriptor"
1714 msgstr ""
1715 "epoll_wait, epoll_pwait - epoll ファイルディスクリプタの I/O イベントを待つ"
1716
1717 #. type: Plain text
1718 #: build/C/man2/epoll_wait.2:35
1719 #, no-wrap
1720 msgid ""
1721 "B<int epoll_wait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
1722 "B<               int >I<maxevents>B<, int >I<timeout>B<);>\n"
1723 "B<int epoll_pwait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
1724 "B<               int >I<maxevents>B<, int >I<timeout>B<,>\n"
1725 "B<               const sigset_t *>I<sigmask>B<);>\n"
1726 msgstr ""
1727 "B<int epoll_wait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
1728 "B<               int >I<maxevents>B<, int >I<timeout>B<);>\n"
1729 "B<int epoll_pwait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
1730 "B<               int >I<maxevents>B<, int >I<timeout>B<,>\n"
1731 "B<               const sigset_t *>I<sigmask>B<);>\n"
1732
1733 #. type: Plain text
1734 #: build/C/man2/epoll_wait.2:53
1735 msgid ""
1736 "The B<epoll_wait>()  system call waits for events on the B<epoll> instance "
1737 "referred to by the file descriptor I<epfd>.  The memory area pointed to by "
1738 "I<events> will contain the events that will be available for the caller.  Up "
1739 "to I<maxevents> are returned by B<epoll_wait>().  The I<maxevents> argument "
1740 "must be greater than zero."
1741 msgstr ""
1742 "B<epoll_wait>()  システムコールは、 ファイルディスクリプタ I<epfd> で参照され"
1743 "る B<epoll> インスタンスに対するイベントを待つ。 I<events> が指すメモリ領域に"
1744 "は、呼び出し側が利用可能なイベントが格納される。 最大 I<maxevents> 個のイベン"
1745 "トが B<epoll_wait>()  によって返される。 I<maxevents> 引き数は 0 より大きくな"
1746 "ければならない。"
1747
1748 #. type: Plain text
1749 #: build/C/man2/epoll_wait.2:67
1750 msgid ""
1751 "The call waits for a maximum time of I<timeout> milliseconds.  Specifying a "
1752 "I<timeout> of -1 makes B<epoll_wait>()  wait indefinitely, while specifying "
1753 "a I<timeout> equal to zero makes B<epoll_wait>()  to return immediately even "
1754 "if no events are available (return code equal to zero)."
1755 msgstr ""
1756 "最大で I<timeout> ミリ秒間イベントを待つ。 I<timeout> を -1 に指定すると、 "
1757 "B<epoll_wait>()  は無限に待つ。 また I<timeout> を 0 に指定すると、 "
1758 "B<epoll_wait>()  はイベントが利用可能でなくても、すぐに返る (返り値は 0 であ"
1759 "る)。"
1760
1761 #. type: Plain text
1762 #: build/C/man2/epoll_wait.2:71
1763 msgid "The I<struct epoll_event> is defined as :"
1764 msgstr "I<struct epoll_event> は以下のように定義される:"
1765
1766 #. type: Plain text
1767 #: build/C/man2/epoll_wait.2:80
1768 #, no-wrap
1769 msgid ""
1770 "typedef union epoll_data {\n"
1771 "    void    *ptr;\n"
1772 "    int      fd;\n"
1773 "    uint32_t u32;\n"
1774 "    uint64_t u64;\n"
1775 "} epoll_data_t;\n"
1776 msgstr ""
1777 "typedef union epoll_data {\n"
1778 "    void    *ptr;\n"
1779 "    int      fd;\n"
1780 "    uint32_t u32;\n"
1781 "    uint64_t u64;\n"
1782 "} epoll_data_t;\n"
1783
1784 #. type: Plain text
1785 #: build/C/man2/epoll_wait.2:85
1786 #, no-wrap
1787 msgid ""
1788 "struct epoll_event {\n"
1789 "    uint32_t     events;    /* Epoll events */\n"
1790 "    epoll_data_t data;      /* User data variable */\n"
1791 "};\n"
1792 msgstr ""
1793 "struct epoll_event {\n"
1794 "    uint32_t     events;    /* epoll イベント */\n"
1795 "    epoll_data_t data;      /* ユーザデータ変数 */\n"
1796 "};\n"
1797
1798 #. type: Plain text
1799 #: build/C/man2/epoll_wait.2:96
1800 msgid ""
1801 "The I<data> of each returned structure will contain the same data the user "
1802 "set with an B<epoll_ctl>(2)  (B<EPOLL_CTL_ADD>,B<EPOLL_CTL_MOD>)  while the "
1803 "I<events> member will contain the returned event bit field."
1804 msgstr ""
1805 "返される構造体の I<data> メンバには、ユーザが B<epoll_ctl>(2)  "
1806 "(B<EPOLL_CTL_ADD>, B<EPOLL_CTL_MOD>)  で指定したデータが格納される。 一方、 "
1807 "I<events> メンバには返された利用可能なイベントのビットフィールドが格納され"
1808 "る。"
1809
1810 #. type: SS
1811 #: build/C/man2/epoll_wait.2:96
1812 #, no-wrap
1813 msgid "epoll_pwait()"
1814 msgstr "epoll_pwait()"
1815
1816 #. type: Plain text
1817 #: build/C/man2/epoll_wait.2:110
1818 msgid ""
1819 "The relationship between B<epoll_wait>()  and B<epoll_pwait>()  is analogous "
1820 "to the relationship between B<select>(2)  and B<pselect>(2): like B<pselect>"
1821 "(2), B<epoll_pwait>()  allows an application to safely wait until either a "
1822 "file descriptor becomes ready or until a signal is caught."
1823 msgstr ""
1824 "B<epoll_wait>()  と B<epoll_pwait>()  の関係は、 B<select>(2)  と B<pselect>"
1825 "(2)  の関係と同様である。 B<pselect>(2)  同様、 B<epoll_pwait>()  を使うと、"
1826 "アプリケーションは、ファイルディスクリプタが準備できた状態になるか、 シグナル"
1827 "が捕捉されるまで、安全に待つことができる。"
1828
1829 #. type: Plain text
1830 #: build/C/man2/epoll_wait.2:114
1831 msgid "The following B<epoll_pwait>()  call:"
1832 msgstr "以下の B<epoll_pwait>()  の呼び出しは、"
1833
1834 #. type: Plain text
1835 #: build/C/man2/epoll_wait.2:117
1836 #, no-wrap
1837 msgid "    ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);\n"
1838 msgstr "    ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);\n"
1839
1840 #. type: Plain text
1841 #: build/C/man2/epoll_wait.2:122 build/C/man2/poll.2:206
1842 msgid "is equivalent to I<atomically> executing the following calls:"
1843 msgstr "次の呼び出しを I<atomic> に実行するのと等価である。"
1844
1845 #. type: Plain text
1846 #: build/C/man2/epoll_wait.2:125
1847 #, no-wrap
1848 msgid "    sigset_t origmask;\n"
1849 msgstr "    sigset_t origmask;\n"
1850
1851 #. type: Plain text
1852 #: build/C/man2/epoll_wait.2:129
1853 #, no-wrap
1854 msgid ""
1855 "    sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
1856 "    ready = epoll_wait(epfd, &events, maxevents, timeout);\n"
1857 "    sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
1858 msgstr ""
1859 "    sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
1860 "    ready = epoll_wait(epfd, &events, maxevents, timeout);\n"
1861 "    sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
1862
1863 #. type: Plain text
1864 #: build/C/man2/epoll_wait.2:137
1865 msgid ""
1866 "The I<sigmask> argument may be specified as NULL, in which case "
1867 "B<epoll_pwait>()  is equivalent to B<epoll_wait>()."
1868 msgstr ""
1869 "I<sigmask> 引き数には NULL を指定してもよい。 その場合には、 B<epoll_pwait>"
1870 "()  は B<epoll_wait>()  と等価となる。"
1871
1872 #. type: Plain text
1873 #: build/C/man2/epoll_wait.2:149
1874 msgid ""
1875 "When successful, B<epoll_wait>()  returns the number of file descriptors "
1876 "ready for the requested I/O, or zero if no file descriptor became ready "
1877 "during the requested I<timeout> milliseconds.  When an error occurs, "
1878 "B<epoll_wait>()  returns -1 and I<errno> is set appropriately."
1879 msgstr ""
1880 "成功した場合、 B<epoll_wait>()  は要求された I/O に対して準備ができているファ"
1881 "イルディスクリプタの数を返す。 また要求された I<timeout> ミリ秒の間にファイル"
1882 "ディスクリプタが準備できない場合は、0 を返す。 エラーが起こった場合、 "
1883 "B<epoll_wait>()  は -1 を返し、 I<errno> を適切に設定する。"
1884
1885 #. type: Plain text
1886 #: build/C/man2/epoll_wait.2:154
1887 msgid "I<epfd> is not a valid file descriptor."
1888 msgstr "I<epfd> が有効なファイルディスクリプタでない。"
1889
1890 #. type: TP
1891 #: build/C/man2/epoll_wait.2:154 build/C/man2/poll.2:268
1892 #, no-wrap
1893 msgid "B<EFAULT>"
1894 msgstr "B<EFAULT>"
1895
1896 #. type: Plain text
1897 #: build/C/man2/epoll_wait.2:159
1898 msgid ""
1899 "The memory area pointed to by I<events> is not accessible with write "
1900 "permissions."
1901 msgstr "I<events> で指されるメモリ領域に書き込み権限でアクセスできない。"
1902
1903 #. type: TP
1904 #: build/C/man2/epoll_wait.2:159 build/C/man2/poll.2:272
1905 #, no-wrap
1906 msgid "B<EINTR>"
1907 msgstr "B<EINTR>"
1908
1909 #. type: Plain text
1910 #: build/C/man2/epoll_wait.2:166
1911 msgid ""
1912 "The call was interrupted by a signal handler before any of the requested "
1913 "events occurred or the I<timeout> expired; see B<signal>(7)."
1914 msgstr ""
1915 "要求されたどのイベントも発生せず、かつ I<timeout> の期限が切れる前に、システ"
1916 "ムコールがシグナルハンドラによって割り込まれた。 B<signal>(7)  参照。"
1917
1918 #. type: Plain text
1919 #: build/C/man2/epoll_wait.2:174
1920 msgid ""
1921 "I<epfd> is not an B<epoll> file descriptor, or I<maxevents> is less than or "
1922 "equal to zero."
1923 msgstr ""
1924 "I<epfd> が B<epoll> ファイルディスクリプタでない。 または I<maxevents> が 0 "
1925 "以下である。"
1926
1927 #.  To be precise: kernel 2.5.44.
1928 #.  The interface should be finalized by Linux kernel 2.5.66.
1929 #. type: Plain text
1930 #: build/C/man2/epoll_wait.2:180
1931 #, fuzzy
1932 #| msgid ""
1933 #| "The B<epoll> API was introduced in Linux kernel 2.5.44.  Support was "
1934 #| "added to glibc in version 2.3.2."
1935 msgid ""
1936 "B<epoll_wait>()  was added to the kernel in version 2.6.  Library support is "
1937 "provided in glibc starting with version 2.3.2."
1938 msgstr ""
1939 "B<epoll> API は Linux カーネル 2.5.44 に導入された。 glibc でのサポートはバー"
1940 "ジョン 2.3.2 で追加された。"
1941
1942 #. type: Plain text
1943 #: build/C/man2/epoll_wait.2:184
1944 #, fuzzy
1945 #| msgid ""
1946 #| "The B<epoll> API was introduced in Linux kernel 2.5.44.  Support was "
1947 #| "added to glibc in version 2.3.2."
1948 msgid ""
1949 "B<epoll_pwait>()  was added to Linux in kernel 2.6.19.  Library support is "
1950 "provided in glibc starting with version 2.6."
1951 msgstr ""
1952 "B<epoll> API は Linux カーネル 2.5.44 に導入された。 glibc でのサポートはバー"
1953 "ジョン 2.3.2 で追加された。"
1954
1955 #. type: Plain text
1956 #: build/C/man2/epoll_wait.2:187
1957 #, fuzzy
1958 #| msgid ""
1959 #| "B<epoll_wait>()  is Linux-specific, and was introduced in kernel 2.5.44."
1960 msgid "B<epoll_wait>()  is Linux-specific."
1961 msgstr "B<epoll_wait>()  は Linux 独自であり、カーネル 2.5.44 で導入された。"
1962
1963 #. type: Plain text
1964 #: build/C/man2/epoll_wait.2:191
1965 msgid "B<epoll_create>(2), B<epoll_ctl>(2), B<epoll>(7)"
1966 msgstr "B<epoll_create>(2), B<epoll_ctl>(2), B<epoll>(7)"
1967
1968 #. type: TH
1969 #: build/C/man2/poll.2:31
1970 #, no-wrap
1971 msgid "POLL"
1972 msgstr "POLL"
1973
1974 #. type: TH
1975 #: build/C/man2/poll.2:31
1976 #, no-wrap
1977 msgid "2010-09-20"
1978 msgstr "2010-09-20"
1979
1980 #. type: Plain text
1981 #: build/C/man2/poll.2:34
1982 msgid "poll, ppoll - wait for some event on a file descriptor"
1983 msgstr "poll, ppoll - ファイルディスクリプタにおけるイベントを待つ"
1984
1985 #. type: Plain text
1986 #: build/C/man2/poll.2:37
1987 #, no-wrap
1988 msgid "B<#include E<lt>poll.hE<gt>>\n"
1989 msgstr "B<#include E<lt>poll.hE<gt>>\n"
1990
1991 #. type: Plain text
1992 #: build/C/man2/poll.2:39
1993 #, no-wrap
1994 msgid "B<int poll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, int >I<timeout>B<);>\n"
1995 msgstr "B<int poll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, int >I<timeout>B<);>\n"
1996
1997 #. type: Plain text
1998 #: build/C/man2/poll.2:42
1999 #, no-wrap
2000 msgid ""
2001 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2002 "B<#include E<lt>poll.hE<gt>>\n"
2003 msgstr ""
2004 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
2005 "B<#include E<lt>poll.hE<gt>>\n"
2006
2007 #. type: Plain text
2008 #: build/C/man2/poll.2:45
2009 #, no-wrap
2010 msgid ""
2011 "B<int ppoll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, >\n"
2012 "B<        const struct timespec *>I<timeout_ts>B<, const sigset_t *>I<sigmask>B<);>\n"
2013 msgstr ""
2014 "B<int ppoll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, >\n"
2015 "B<        const struct timespec *>I<timeout_ts>B<, const sigset_t *>I<sigmask>B<);>\n"
2016
2017 #. type: Plain text
2018 #: build/C/man2/poll.2:52
2019 msgid ""
2020 "B<poll>()  performs a similar task to B<select>(2): it waits for one of a "
2021 "set of file descriptors to become ready to perform I/O."
2022 msgstr ""
2023 "B<poll>()  は B<select>(2)  と同様の仕事を行う、つまり、ファイルディスクリプ"
2024 "タ集合のいずれか一つが I/O を実行可能な状態になるのを待つ。"
2025
2026 #. type: Plain text
2027 #: build/C/man2/poll.2:56
2028 msgid ""
2029 "The set of file descriptors to be monitored is specified in the I<fds> "
2030 "argument, which is an array of structures of the following form:"
2031 msgstr ""
2032 "監視するファイルディスクリプタ集合は、 I<fds> 引き数で指定する。 I<fds> は、"
2033 "以下の型の構造体の配列である。"
2034
2035 #. type: Plain text
2036 #: build/C/man2/poll.2:64
2037 #, no-wrap
2038 msgid ""
2039 "struct pollfd {\n"
2040 "    int   fd;         /* file descriptor */\n"
2041 "    short events;     /* requested events */\n"
2042 "    short revents;    /* returned events */\n"
2043 "};\n"
2044 msgstr ""
2045 "struct pollfd {\n"
2046 "    int   fd;         /* file descriptor */\n"
2047 "    short events;     /* requested events */\n"
2048 "    short revents;    /* returned events */\n"
2049 "};\n"
2050
2051 #. type: Plain text
2052 #: build/C/man2/poll.2:71
2053 msgid ""
2054 "The caller should specify the number of items in the I<fds> array in I<nfds>."
2055 msgstr "I<nfds> には、 I<fds> 配列の要素数を指定する。"
2056
2057 #. type: Plain text
2058 #: build/C/man2/poll.2:75
2059 msgid "The field I<fd> contains a file descriptor for an open file."
2060 msgstr ""
2061 "構造体の I<fd> にはオープンしたファイルのファイルディスクリプタを入れる。"
2062
2063 #. type: Plain text
2064 #: build/C/man2/poll.2:80
2065 msgid ""
2066 "The field I<events> is an input parameter, a bit mask specifying the events "
2067 "the application is interested in."
2068 msgstr ""
2069 "構造体の I<events> 要素は入力パラメータで、アプリケーションが興味を持っている"
2070 "イベントの ビットマスクを指定する。"
2071
2072 #. type: Plain text
2073 #: build/C/man2/poll.2:99
2074 msgid ""
2075 "The field I<revents> is an output parameter, filled by the kernel with the "
2076 "events that actually occurred.  The bits returned in I<revents> can include "
2077 "any of those specified in I<events>, or one of the values B<POLLERR>, "
2078 "B<POLLHUP>, or B<POLLNVAL>.  (These three bits are meaningless in the "
2079 "I<events> field, and will be set in the I<revents> field whenever the "
2080 "corresponding condition is true.)"
2081 msgstr ""
2082 "I<revents> 要素は出力パラメータで、実際に起こったイベントがカーネルにより設定"
2083 "される。 I<revents> で返されるビット列には、 I<events> で指定したもののどれ"
2084 "か、もしくは B<POLLERR>, B<POLLHUP>, B<POLLNVAL> のうちの一つが含まれる "
2085 "(B<POLLERR>, B<POLLHUP>, B<POLLNVAL> の 3つのビットは I<events> に指定しても"
2086 "意味がなく、対応した状態が真の場合に I<revents> に設定される)。"
2087
2088 #. type: Plain text
2089 #: build/C/man2/poll.2:104
2090 msgid ""
2091 "If none of the events requested (and no error) has occurred for any of the "
2092 "file descriptors, then B<poll>()  blocks until one of the events occurs."
2093 msgstr ""
2094 "どのファイルディスクリプタにも要求したイベントが発生しておらず、 エラーも起こ"
2095 "らない場合、 B<poll>()  はイベントのうちいずれか一つが発生するまで停止 "
2096 "(block) する。"
2097
2098 #. type: Plain text
2099 #: build/C/man2/poll.2:113
2100 msgid ""
2101 "The I<timeout> argument specifies an upper limit on the time for which "
2102 "B<poll>()  will block, in milliseconds.  Specifying a negative value in "
2103 "I<timeout> means an infinite timeout."
2104 msgstr ""
2105 "I<timeout> 引き数は B<poll>()  が停止する時間の上限を設定するもので、ミリ秒単"
2106 "位で指定する。 I<timeout> に負の値を指定すると、タイムアウト時間が無限とな"
2107 "る。"
2108
2109 #. type: Plain text
2110 #: build/C/man2/poll.2:119
2111 msgid ""
2112 "The bits that may be set/returned in I<events> and I<revents> are defined in "
2113 "I<E<lt>poll.hE<gt>>:"
2114 msgstr ""
2115 "I<events> に指定したり、 I<revents> で返されるビットは I<E<lt>poll.hE<gt>> で"
2116 "定義されている:"
2117
2118 #. type: TP
2119 #: build/C/man2/poll.2:120
2120 #, no-wrap
2121 msgid "B<POLLIN>"
2122 msgstr "B<POLLIN>"
2123
2124 #. type: Plain text
2125 #: build/C/man2/poll.2:123
2126 msgid "There is data to read."
2127 msgstr "読み出し可能なデータがある。"
2128
2129 #. type: TP
2130 #: build/C/man2/poll.2:123
2131 #, no-wrap
2132 msgid "B<POLLPRI>"
2133 msgstr "B<POLLPRI>"
2134
2135 #. type: Plain text
2136 #: build/C/man2/poll.2:127
2137 msgid ""
2138 "There is urgent data to read (e.g., out-of-band data on TCP socket; "
2139 "pseudoterminal master in packet mode has seen state change in slave)."
2140 msgstr ""
2141 "読み出し可能な緊急データ (urgent data) がある (例えば、TCP ソケットの帯域外 "
2142 "(out-of-band data) データを受信した場合や、 パケットモードの擬似端末のマスタ"
2143 "がスレーブ側の変化を見つけたとき)。"
2144
2145 #. type: TP
2146 #: build/C/man2/poll.2:127
2147 #, no-wrap
2148 msgid "B<POLLOUT>"
2149 msgstr "B<POLLOUT>"
2150
2151 #. type: Plain text
2152 #: build/C/man2/poll.2:130
2153 msgid "Writing now will not block."
2154 msgstr "書き込みが停止 (block) しない状態である。"
2155
2156 #. type: TP
2157 #: build/C/man2/poll.2:130
2158 #, no-wrap
2159 msgid "B<POLLRDHUP> (since Linux 2.6.17)"
2160 msgstr "B<POLLRDHUP> (Linux 2.6.17 以降)"
2161
2162 #. type: Plain text
2163 #: build/C/man2/poll.2:141
2164 msgid ""
2165 "Stream socket peer closed connection, or shut down writing half of "
2166 "connection.  The B<_GNU_SOURCE> feature test macro must be defined (before "
2167 "including I<any> header files)  in order to obtain this definition."
2168 msgstr ""
2169 "ストリームソケットの他端が、コネクションを close したか、 コネクションの書き"
2170 "込み側を shutdown した。 この定義を有効にするには、 (「どの」ヘッダファイルを"
2171 "インクルードするよりも前に)  B<_GNU_SOURCE> 機能検査マクロを定義しなければな"
2172 "らない。"
2173
2174 #. type: TP
2175 #: build/C/man2/poll.2:141
2176 #, no-wrap
2177 msgid "B<POLLERR>"
2178 msgstr "B<POLLERR>"
2179
2180 #. type: Plain text
2181 #: build/C/man2/poll.2:144
2182 msgid "Error condition (output only)."
2183 msgstr "エラー状態 (出力の場合のみ)。"
2184
2185 #. type: TP
2186 #: build/C/man2/poll.2:144
2187 #, no-wrap
2188 msgid "B<POLLHUP>"
2189 msgstr "B<POLLHUP>"
2190
2191 #. type: Plain text
2192 #: build/C/man2/poll.2:147
2193 msgid "Hang up (output only)."
2194 msgstr "ハングアップした (出力の場合のみ)。"
2195
2196 #. type: TP
2197 #: build/C/man2/poll.2:147
2198 #, no-wrap
2199 msgid "B<POLLNVAL>"
2200 msgstr "B<POLLNVAL>"
2201
2202 #. type: Plain text
2203 #: build/C/man2/poll.2:152
2204 msgid "Invalid request: I<fd> not open (output only)."
2205 msgstr "不正な要求: I<fd> がオープンされていない (出力の場合のみ)。"
2206
2207 #. type: Plain text
2208 #: build/C/man2/poll.2:158
2209 msgid ""
2210 "When compiling with B<_XOPEN_SOURCE> defined, one also has the following, "
2211 "which convey no further information beyond the bits listed above:"
2212 msgstr ""
2213 "B<_XOPEN_SOURCE> を定義してコンパイルした場合には、以下の定義も行われる。 た"
2214 "だし、上記のリストにあるビット以上の情報が得られる訳ではない。"
2215
2216 #. type: TP
2217 #: build/C/man2/poll.2:159
2218 #, no-wrap
2219 msgid "B<POLLRDNORM>"
2220 msgstr "B<POLLRDNORM>"
2221
2222 #. type: Plain text
2223 #: build/C/man2/poll.2:163
2224 msgid "Equivalent to B<POLLIN>."
2225 msgstr "B<POLLIN> と同じ。"
2226
2227 #. type: TP
2228 #: build/C/man2/poll.2:163
2229 #, no-wrap
2230 msgid "B<POLLRDBAND>"
2231 msgstr "B<POLLRDBAND>"
2232
2233 #.  POLLRDBAND is used in the DECnet protocol.
2234 #. type: Plain text
2235 #: build/C/man2/poll.2:167
2236 msgid "Priority band data can be read (generally unused on Linux)."
2237 msgstr ""
2238 "優先帯域データ (priority band data) が読み出し可能である (普通は Linux では使"
2239 "用されない)。"
2240
2241 #. type: TP
2242 #: build/C/man2/poll.2:167
2243 #, no-wrap
2244 msgid "B<POLLWRNORM>"
2245 msgstr "B<POLLWRNORM>"
2246
2247 #. type: Plain text
2248 #: build/C/man2/poll.2:171
2249 msgid "Equivalent to B<POLLOUT>."
2250 msgstr "B<POLLOUT> と同じ。"
2251
2252 #. type: TP
2253 #: build/C/man2/poll.2:171
2254 #, no-wrap
2255 msgid "B<POLLWRBAND>"
2256 msgstr "B<POLLWRBAND>"
2257
2258 #. type: Plain text
2259 #: build/C/man2/poll.2:174
2260 msgid "Priority data may be written."
2261 msgstr "優先帯域データ (priority data) が書き込み可能である。"
2262
2263 #. type: Plain text
2264 #: build/C/man2/poll.2:178
2265 msgid "Linux also knows about, but does not use B<POLLMSG>."
2266 msgstr "Linux では B<POLLMSG> も定義されているが、使用されていない。"
2267
2268 #. type: SS
2269 #: build/C/man2/poll.2:178
2270 #, no-wrap
2271 msgid "ppoll()"
2272 msgstr "ppoll()"
2273
2274 #. type: Plain text
2275 #: build/C/man2/poll.2:192
2276 msgid ""
2277 "The relationship between B<poll>()  and B<ppoll>()  is analogous to the "
2278 "relationship between B<select>(2)  and B<pselect>(2): like B<pselect>(2), "
2279 "B<ppoll>()  allows an application to safely wait until either a file "
2280 "descriptor becomes ready or until a signal is caught."
2281 msgstr ""
2282 "B<poll>()  と B<ppoll>()  の関係は B<select>(2)  と B<pselect>(2)  の関係と同"
2283 "じようなものである: B<pselect>(2)  と同様に、 B<ppoll>()  を使うと、アプリ"
2284 "ケーションはファイルディスクリプタの状態変化 もしくはシグナルの捕捉を安全に待"
2285 "つことができる。"
2286
2287 #. type: Plain text
2288 #: build/C/man2/poll.2:198
2289 msgid ""
2290 "Other than the difference in the precision of the I<timeout> argument, the "
2291 "following B<ppoll>()  call:"
2292 msgstr ""
2293 "I<timeout> 引き数の精度の違いを除くと、以下の B<ppoll>()  の呼び出しは、"
2294
2295 #. type: Plain text
2296 #: build/C/man2/poll.2:201
2297 #, no-wrap
2298 msgid "    ready = ppoll(&fds, nfds, timeout_ts, &sigmask);\n"
2299 msgstr "    ready = ppoll(&fds, nfds, timeout_ts, &sigmask);\n"
2300
2301 #. type: Plain text
2302 #: build/C/man2/poll.2:210
2303 #, no-wrap
2304 msgid ""
2305 "    sigset_t origmask;\n"
2306 "    int timeout;\n"
2307 msgstr ""
2308 "    sigset_t origmask;\n"
2309 "    int timeout;\n"
2310
2311 #. type: Plain text
2312 #: build/C/man2/poll.2:216
2313 #, no-wrap
2314 msgid ""
2315 "    timeout = (timeout_ts == NULL) ? -1 :\n"
2316 "              (timeout_ts.tv_sec * 1000 + timeout_ts.tv_nsec / 1000000);\n"
2317 "    sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
2318 "    ready = poll(&fds, nfds, timeout);\n"
2319 "    sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
2320 msgstr ""
2321 "    timeout = (timeout_ts == NULL) ? -1 :\n"
2322 "              (timeout_ts.tv_sec * 1000 + timeout_ts.tv_nsec / 1000000);\n"
2323 "    sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
2324 "    ready = poll(&fds, nfds, timeout);\n"
2325 "    sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
2326
2327 #. type: Plain text
2328 #: build/C/man2/poll.2:223
2329 msgid ""
2330 "See the description of B<pselect>(2)  for an explanation of why B<ppoll>()  "
2331 "is necessary."
2332 msgstr ""
2333 "なぜ B<ppoll>()  が必要なのかについての説明は B<pselect>(2)  の説明を参照のこ"
2334 "と。"
2335
2336 #. type: Plain text
2337 #: build/C/man2/poll.2:235
2338 msgid ""
2339 "If the I<sigmask> argument is specified as NULL, then no signal mask "
2340 "manipulation is performed (and thus B<ppoll>()  differs from B<poll>()  only "
2341 "in the precision of the I<timeout> argument)."
2342 msgstr ""
2343 "I<sigmask> 引き数に NULL が指定された場合、シグナルマスクの操作は行われない "
2344 "(したがって、 B<ppoll>()  の B<poll>()  との違いは I<timeout> 引き数の精度だ"
2345 "けとなる)。"
2346
2347 #. type: Plain text
2348 #: build/C/man2/poll.2:242
2349 msgid ""
2350 "The I<timeout_ts> argument specifies an upper limit on the amount of time "
2351 "that B<ppoll>()  will block.  This argument is a pointer to a structure of "
2352 "the following form:"
2353 msgstr ""
2354 "I<timeout> 引き数は B<ppoll>()  が停止する時間の上限を指定するものである。 こ"
2355 "の引き数には以下の型の構造体へのポインタを指定する。"
2356
2357 #. type: Plain text
2358 #: build/C/man2/poll.2:249
2359 #, no-wrap
2360 msgid ""
2361 "struct timespec {\n"
2362 "    long    tv_sec;         /* seconds */\n"
2363 "    long    tv_nsec;        /* nanoseconds */\n"
2364 "};\n"
2365 msgstr ""
2366 "struct timespec {\n"
2367 "    long    tv_sec;         /* seconds */\n"
2368 "    long    tv_nsec;        /* nanoseconds */\n"
2369 "};\n"
2370
2371 #. type: Plain text
2372 #: build/C/man2/poll.2:257
2373 msgid ""
2374 "If I<timeout_ts> is specified as NULL, then B<ppoll>()  can block "
2375 "indefinitely."
2376 msgstr ""
2377 "I<timeout_ts> に NULL が指定された場合、 B<ppoll> は無限に停止することがあり"
2378 "得る。"
2379
2380 #. type: Plain text
2381 #: build/C/man2/poll.2:267
2382 msgid ""
2383 "On success, a positive number is returned; this is the number of structures "
2384 "which have nonzero I<revents> fields (in other words, those descriptors with "
2385 "events or errors reported).  A value of 0 indicates that the call timed out "
2386 "and no file descriptors were ready.  On error, -1 is returned, and I<errno> "
2387 "is set appropriately."
2388 msgstr ""
2389 "成功した場合は正の数を返す。この数は 0 以外の I<revents> 要素を持つ構造体の数"
2390 "である (別の言い方をすると、これらのディスクリプタ にはイベントかエラー報告が"
2391 "ある)。 値 0 は、タイムアウトとなり、どのファイルディスクリプタでもイベント"
2392 "が 発生しなかったことを示す。エラーの場合は -1 が返され、 I<errno> が適切に設"
2393 "定される。"
2394
2395 #. type: Plain text
2396 #: build/C/man2/poll.2:272
2397 msgid ""
2398 "The array given as argument was not contained in the calling program's "
2399 "address space."
2400 msgstr ""
2401 "引き数として指定した配列が、呼び出したプロセスのアドレス空間に 含まれていな"
2402 "い。"
2403
2404 #. type: Plain text
2405 #: build/C/man2/poll.2:276
2406 msgid "A signal occurred before any requested event; see B<signal>(7)."
2407 msgstr ""
2408 "要求されたイベントのどれかが起こる前にシグナルが発生した。 B<signal>(7)  参"
2409 "照。"
2410
2411 #. type: Plain text
2412 #: build/C/man2/poll.2:283
2413 msgid "The I<nfds> value exceeds the B<RLIMIT_NOFILE> value."
2414 msgstr "I<nfds> の値が B<RLIMIT_NOFILE> を超えた。"
2415
2416 #. type: Plain text
2417 #: build/C/man2/poll.2:286
2418 msgid "There was no space to allocate file descriptor tables."
2419 msgstr "ファイルディスクリプタ・テーブルを確保するためのメモリがない。"
2420
2421 #. type: Plain text
2422 #: build/C/man2/poll.2:299
2423 msgid ""
2424 "The B<poll>()  system call was introduced in Linux 2.1.23.  The B<poll>()  "
2425 "library call was introduced in libc 5.4.28 (and provides emulation using "
2426 "B<select>(2)  if your kernel does not have a B<poll>()  system call)."
2427 msgstr ""
2428 "B<poll>()  システムコールは Linux 2.1.23 で導入された。 B<poll>()  ライブラ"
2429 "リ・コールは libc 5.4.28 から導入された (これはカーネルが B<poll>()  システム"
2430 "コールをサポートしていない場合に B<select>(2)  を使用してエミュレートを行"
2431 "う)。"
2432
2433 #. type: Plain text
2434 #: build/C/man2/poll.2:306
2435 msgid ""
2436 "The B<ppoll>()  system call was added to Linux in kernel 2.6.16.  The "
2437 "B<ppoll>()  library call was added in glibc 2.4."
2438 msgstr ""
2439 "B<ppoll>()  システムコールは カーネル 2.6.16 で Linux に追加された。 B<ppoll>"
2440 "()  ライブラリコールは glibc 2.4 に追加された。"
2441
2442 #.  NetBSD 3.0 has a pollts() which is like Linux ppoll().
2443 #. type: Plain text
2444 #: build/C/man2/poll.2:312
2445 msgid "B<poll>()  conforms to POSIX.1-2001.  B<ppoll>()  is Linux-specific."
2446 msgstr ""
2447 "B<poll>()  は POSIX.1-2001 に準拠している。 B<ppoll>()  は Linux 固有である。"
2448
2449 #. type: Plain text
2450 #: build/C/man2/poll.2:320
2451 msgid ""
2452 "Some implementations define the nonstandard constant B<INFTIM> with the "
2453 "value -1 for use as a I<timeout> for B<poll>().  This constant is not "
2454 "provided in glibc."
2455 msgstr ""
2456 "いくつかの実装では、値 -1 を持った非標準の定数 B<INFTIM> が定義されており、 "
2457 "B<poll>()  の I<timeout> の指定に使用できる。 この定数は glibc では定義されて"
2458 "いない。"
2459
2460 #. type: SS
2461 #: build/C/man2/poll.2:320
2462 #, no-wrap
2463 msgid "Linux Notes"
2464 msgstr "Linux での注意"
2465
2466 #. type: Plain text
2467 #: build/C/man2/poll.2:334
2468 msgid ""
2469 "The Linux B<ppoll>()  system call modifies its I<timeout_ts> argument.  "
2470 "However, the glibc wrapper function hides this behavior by using a local "
2471 "variable for the timeout argument that is passed to the system call.  Thus, "
2472 "the glibc B<ppoll>()  function does not modify its I<timeout_ts> argument."
2473 msgstr ""
2474 "Linux の B<ppoll>()  システムコールは I<timeout_ts> 引き数を変更する。 しか"
2475 "し、glibc のラッパー関数は、システムコールに渡す timeout 引き数 としてローカ"
2476 "ル変数を使うことでこの動作を隠蔽している。 このため、glibc の B<ppoll>()  関"
2477 "数では I<timeout_ts> 引き数は変更されない。"
2478
2479 #. type: Plain text
2480 #: build/C/man2/poll.2:338
2481 msgid ""
2482 "See the discussion of spurious readiness notifications under the BUGS "
2483 "section of B<select>(2)."
2484 msgstr ""
2485 "B<select>(2)  の「バグ」の節に書かれている、誤った準備完了通知 (spurious "
2486 "readiness notifications) についての議論を参照のこと。"
2487
2488 #. type: Plain text
2489 #: build/C/man2/poll.2:342
2490 msgid "B<select>(2), B<select_tut>(2), B<time>(7)"
2491 msgstr "B<select>(2), B<select_tut>(2), B<time>(7)"
2492
2493 #~ msgid "2009-01-17"
2494 #~ msgstr "2009-01-17"
2495
2496 #~ msgid "2010-08-29"
2497 #~ msgstr "2010-08-29"
2498
2499 #~ msgid ""
2500 #~ "Glibc support for B<epoll_pwait>()  is provided starting with version 2.6."
2501 #~ msgstr ""
2502 #~ "B<epoll_pwait>()  の glibc でのサポートは glibc 2.6 以降で提供されている。"