OSDN Git Service

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