OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.37.
[linuxjm/LDP_man-pages.git] / po4a / epoll / po / epoll.pot
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 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-03-22 04:25+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man7/epoll.7:21
21 #, no-wrap
22 msgid "EPOLL"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man7/epoll.7:21
27 #, no-wrap
28 msgid "2009-02-01"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:25 build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23 build/C/man2/poll.2:31
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:25 build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23 build/C/man2/poll.2:31
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man7/epoll.7:22 build/C/man2/epoll_create.2:26 build/C/man2/epoll_ctl.2:22 build/C/man2/epoll_wait.2:24 build/C/man2/poll.2:32
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man7/epoll.7:24
51 msgid "epoll - I/O event notification facility"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man7/epoll.7:24 build/C/man2/epoll_create.2:28 build/C/man2/epoll_ctl.2:24 build/C/man2/epoll_wait.2:26 build/C/man2/poll.2:34
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man7/epoll.7:26 build/C/man2/epoll_ctl.2:26
62 msgid "B<#include E<lt>sys/epoll.hE<gt>>"
63 msgstr ""
64
65 #. type: SH
66 #: build/C/man7/epoll.7:26 build/C/man2/epoll_create.2:35 build/C/man2/epoll_ctl.2:29 build/C/man2/epoll_wait.2:36 build/C/man2/poll.2:46
67 #, no-wrap
68 msgid "DESCRIPTION"
69 msgstr ""
70
71 #. type: Plain text
72 #: build/C/man7/epoll.7:36
73 msgid ""
74 "B<epoll> is a variant of B<poll>(2)  that can be used either as an "
75 "edge-triggered or a level-triggered interface and scales well to large "
76 "numbers of watched file descriptors.  The following system calls are "
77 "provided to create and manage an B<epoll> instance:"
78 msgstr ""
79
80 #. type: IP
81 #: build/C/man7/epoll.7:36 build/C/man7/epoll.7:46 build/C/man7/epoll.7:54
82 #, no-wrap
83 msgid "*"
84 msgstr ""
85
86 #. type: Plain text
87 #: build/C/man7/epoll.7:46
88 msgid ""
89 "An B<epoll> instance created by B<epoll_create>(2), which returns a file "
90 "descriptor referring to the epoll instance.  (The more recent "
91 "B<epoll_create1>(2)  extends the functionality of B<epoll_create>(2).)"
92 msgstr ""
93
94 #. type: Plain text
95 #: build/C/man7/epoll.7:54
96 msgid ""
97 "Interest in particular file descriptors is then registered via "
98 "B<epoll_ctl>(2).  The set of file descriptors currently registered on an "
99 "B<epoll> instance is sometimes called an I<epoll> set."
100 msgstr ""
101
102 #. type: Plain text
103 #: build/C/man7/epoll.7:57
104 msgid "Finally, the actual wait is started by B<epoll_wait>(2)."
105 msgstr ""
106
107 #. type: SS
108 #: build/C/man7/epoll.7:57
109 #, no-wrap
110 msgid "Level-Triggered and Edge-Triggered"
111 msgstr ""
112
113 #. type: Plain text
114 #: build/C/man7/epoll.7:66
115 msgid ""
116 "The B<epoll> event distribution interface is able to behave both as "
117 "edge-triggered (ET) and as level-triggered (LT).  The difference between the "
118 "two mechanisms can be described as follows.  Suppose that this scenario "
119 "happens:"
120 msgstr ""
121
122 #. type: IP
123 #: build/C/man7/epoll.7:66
124 #, no-wrap
125 msgid "1."
126 msgstr ""
127
128 #. type: Plain text
129 #: build/C/man7/epoll.7:72
130 msgid ""
131 "The file descriptor that represents the read side of a pipe (I<rfd>)  is "
132 "registered on the B<epoll> instance."
133 msgstr ""
134
135 #. type: IP
136 #: build/C/man7/epoll.7:72
137 #, no-wrap
138 msgid "2."
139 msgstr ""
140
141 #. type: Plain text
142 #: build/C/man7/epoll.7:74
143 msgid "A pipe writer writes 2 kB of data on the write side of the pipe."
144 msgstr ""
145
146 #. type: IP
147 #: build/C/man7/epoll.7:74
148 #, no-wrap
149 msgid "3."
150 msgstr ""
151
152 #. type: Plain text
153 #: build/C/man7/epoll.7:80
154 msgid ""
155 "A call to B<epoll_wait>(2)  is done that will return I<rfd> as a ready file "
156 "descriptor."
157 msgstr ""
158
159 #. type: IP
160 #: build/C/man7/epoll.7:80
161 #, no-wrap
162 msgid "4."
163 msgstr ""
164
165 #. type: Plain text
166 #: build/C/man7/epoll.7:83
167 msgid "The pipe reader reads 1 kB of data from I<rfd>."
168 msgstr ""
169
170 #. type: IP
171 #: build/C/man7/epoll.7:83
172 #, no-wrap
173 msgid "5."
174 msgstr ""
175
176 #. type: Plain text
177 #: build/C/man7/epoll.7:87
178 msgid "A call to B<epoll_wait>(2)  is done."
179 msgstr ""
180
181 #. type: Plain text
182 #: build/C/man7/epoll.7:122
183 msgid ""
184 "If the I<rfd> file descriptor has been added to the B<epoll> interface using "
185 "the B<EPOLLET> (edge-triggered)  flag, the call to B<epoll_wait>(2)  done in "
186 "step B<5> will probably hang despite the available data still present in the "
187 "file input buffer; meanwhile the remote peer might be expecting a response "
188 "based on the data it already sent.  The reason for this is that "
189 "edge-triggered mode only delivers events when changes occur on the monitored "
190 "file descriptor.  So, in step B<5> the caller might end up waiting for some "
191 "data that is already present inside the input buffer.  In the above example, "
192 "an event on I<rfd> will be generated because of the write done in B<2> and "
193 "the event is consumed in B<3>.  Since the read operation done in B<4> does "
194 "not consume the whole buffer data, the call to B<epoll_wait>(2)  done in "
195 "step B<5> might block indefinitely."
196 msgstr ""
197
198 #. type: Plain text
199 #: build/C/man7/epoll.7:132
200 msgid ""
201 "An application that employs the B<EPOLLET> flag should use nonblocking file "
202 "descriptors to avoid having a blocking read or write starve a task that is "
203 "handling multiple file descriptors.  The suggested way to use B<epoll> as an "
204 "edge-triggered (B<EPOLLET>)  interface is as follows:"
205 msgstr ""
206
207 #. type: TP
208 #: build/C/man7/epoll.7:133
209 #, no-wrap
210 msgid "B<i>"
211 msgstr ""
212
213 #. type: Plain text
214 #: build/C/man7/epoll.7:136
215 msgid "with nonblocking file descriptors; and"
216 msgstr ""
217
218 #. type: TP
219 #: build/C/man7/epoll.7:136
220 #, no-wrap
221 msgid "B<ii>"
222 msgstr ""
223
224 #. type: Plain text
225 #: build/C/man7/epoll.7:144
226 msgid ""
227 "by waiting for an event only after B<read>(2)  or B<write>(2)  return "
228 "B<EAGAIN>."
229 msgstr ""
230
231 #. type: Plain text
232 #: build/C/man7/epoll.7:155
233 msgid ""
234 "By contrast, when used as a level-triggered interface (the default, when "
235 "B<EPOLLET> is not specified), B<epoll> is simply a faster B<poll>(2), and "
236 "can be used wherever the latter is used since it shares the same semantics."
237 msgstr ""
238
239 #. type: Plain text
240 #: build/C/man7/epoll.7:172
241 msgid ""
242 "Since even with edge-triggered B<epoll>, multiple events can be generated "
243 "upon receipt of multiple chunks of data, the caller has the option to "
244 "specify the B<EPOLLONESHOT> flag, to tell B<epoll> to disable the associated "
245 "file descriptor after the receipt of an event with B<epoll_wait>(2).  When "
246 "the B<EPOLLONESHOT> flag is specified, it is the caller's responsibility to "
247 "rearm the file descriptor using B<epoll_ctl>(2)  with B<EPOLL_CTL_MOD>."
248 msgstr ""
249
250 #. type: SS
251 #: build/C/man7/epoll.7:172
252 #, no-wrap
253 msgid "/proc interfaces"
254 msgstr ""
255
256 #.  Following was added in 2.6.28, but them removed in 2.6.29
257 #.  .TP
258 #.  .IR /proc/sys/fs/epoll/max_user_instances " (since Linux 2.6.28)"
259 #.  This specifies an upper limit on the number of epoll instances
260 #.  that can be created per real user ID.
261 #. type: Plain text
262 #: build/C/man7/epoll.7:180
263 msgid ""
264 "The following interfaces can be used to limit the amount of kernel memory "
265 "consumed by epoll:"
266 msgstr ""
267
268 #. type: TP
269 #: build/C/man7/epoll.7:180
270 #, no-wrap
271 msgid "I</proc/sys/fs/epoll/max_user_watches> (since Linux 2.6.28)"
272 msgstr ""
273
274 #.  2.6.29 (in 2.6.28, the default was 1/32 of lowmem)
275 #. type: Plain text
276 #: build/C/man7/epoll.7:194
277 msgid ""
278 "This specifies a limit on the total number of file descriptors that a user "
279 "can register across all epoll instances on the system.  The limit is per "
280 "real user ID.  Each registered file descriptor costs roughly 90 bytes on a "
281 "32-bit kernel, and roughly 160 bytes on a 64-bit kernel.  Currently, the "
282 "default value for I<max_user_watches> is 1/25 (4%) of the available low "
283 "memory, divided by the registration cost in bytes."
284 msgstr ""
285
286 #. type: SS
287 #: build/C/man7/epoll.7:194
288 #, no-wrap
289 msgid "Example for Suggested Usage"
290 msgstr ""
291
292 #. type: Plain text
293 #: build/C/man7/epoll.7:223
294 msgid ""
295 "While the usage of B<epoll> when employed as a level-triggered interface "
296 "does have the same semantics as B<poll>(2), the edge-triggered usage "
297 "requires more clarification to avoid stalls in the application event loop.  "
298 "In this example, listener is a nonblocking socket on which B<listen>(2)  has "
299 "been called.  The function I<do_use_fd()> uses the new ready file descriptor "
300 "until B<EAGAIN> is returned by either B<read>(2)  or B<write>(2).  An "
301 "event-driven state machine application should, after having received "
302 "B<EAGAIN>, record its current state so that at the next call to "
303 "I<do_use_fd()> it will continue to B<read>(2)  or B<write>(2)  from where it "
304 "stopped before."
305 msgstr ""
306
307 #. type: Plain text
308 #: build/C/man7/epoll.7:229
309 #, no-wrap
310 msgid ""
311 "#define MAX_EVENTS 10\n"
312 "struct epoll_event ev, events[MAX_EVENTS];\n"
313 "int listen_sock, conn_sock, nfds, epollfd;\n"
314 msgstr ""
315
316 #. type: Plain text
317 #: build/C/man7/epoll.7:232
318 #, no-wrap
319 msgid ""
320 "/* Set up listening socket, \\(aqlisten_sock\\(aq (socket(),\n"
321 "   bind(), listen()) */\n"
322 msgstr ""
323
324 #. type: Plain text
325 #: build/C/man7/epoll.7:238
326 #, no-wrap
327 msgid ""
328 "epollfd = epoll_create(10);\n"
329 "if (epollfd == -1) {\n"
330 "    perror(\"epoll_create\");\n"
331 "    exit(EXIT_FAILURE);\n"
332 "}\n"
333 msgstr ""
334
335 #. type: Plain text
336 #: build/C/man7/epoll.7:245
337 #, no-wrap
338 msgid ""
339 "ev.events = EPOLLIN;\n"
340 "ev.data.fd = listen_sock;\n"
341 "if (epoll_ctl(epollfd, EPOLL_CTL_ADD, listen_sock, &ev) == -1) {\n"
342 "    perror(\"epoll_ctl: listen_sock\");\n"
343 "    exit(EXIT_FAILURE);\n"
344 "}\n"
345 msgstr ""
346
347 #. type: Plain text
348 #: build/C/man7/epoll.7:252
349 #, no-wrap
350 msgid ""
351 "for (;;) {\n"
352 "    nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1);\n"
353 "    if (nfds == -1) {\n"
354 "        perror(\"epoll_pwait\");\n"
355 "        exit(EXIT_FAILURE);\n"
356 "    }\n"
357 msgstr ""
358
359 #. type: Plain text
360 #: build/C/man7/epoll.7:274
361 #, no-wrap
362 msgid ""
363 "    for (n = 0; n E<lt> nfds; ++n) {\n"
364 "        if (events[n].data.fd == listen_sock) {\n"
365 "            conn_sock = accept(listen_sock,\n"
366 "                            (struct sockaddr *) &local, &addrlen);\n"
367 "            if (conn_sock == -1) {\n"
368 "                perror(\"accept\");\n"
369 "                exit(EXIT_FAILURE);\n"
370 "            }\n"
371 "            setnonblocking(conn_sock);\n"
372 "            ev.events = EPOLLIN | EPOLLET;\n"
373 "            ev.data.fd = conn_sock;\n"
374 "            if (epoll_ctl(epollfd, EPOLL_CTL_ADD, conn_sock,\n"
375 "                        &ev) == -1) {\n"
376 "                perror(\"epoll_ctl: conn_sock\");\n"
377 "                exit(EXIT_FAILURE);\n"
378 "            }\n"
379 "        } else {\n"
380 "            do_use_fd(events[n].data.fd);\n"
381 "        }\n"
382 "    }\n"
383 "}\n"
384 msgstr ""
385
386 #. type: Plain text
387 #: build/C/man7/epoll.7:293
388 msgid ""
389 "When used as an edge-triggered interface, for performance reasons, it is "
390 "possible to add the file descriptor inside the B<epoll> interface "
391 "(B<EPOLL_CTL_ADD>)  once by specifying (B<EPOLLIN>|B<EPOLLOUT>).  This "
392 "allows you to avoid continuously switching between B<EPOLLIN> and "
393 "B<EPOLLOUT> calling B<epoll_ctl>(2)  with B<EPOLL_CTL_MOD>."
394 msgstr ""
395
396 #. type: SS
397 #: build/C/man7/epoll.7:293
398 #, no-wrap
399 msgid "Questions and Answers"
400 msgstr ""
401
402 #. type: TP
403 #: build/C/man7/epoll.7:294
404 #, no-wrap
405 msgid "B<Q0>"
406 msgstr ""
407
408 #. type: Plain text
409 #: build/C/man7/epoll.7:299
410 msgid ""
411 "What is the key used to distinguish the file descriptors registered in an "
412 "B<epoll> set?"
413 msgstr ""
414
415 #. type: TP
416 #: build/C/man7/epoll.7:299
417 #, no-wrap
418 msgid "B<A0>"
419 msgstr ""
420
421 #. type: Plain text
422 #: build/C/man7/epoll.7:305
423 msgid ""
424 "The key is the combination of the file descriptor number and the open file "
425 "description (also known as an \"open file handle\", the kernel's internal "
426 "representation of an open file)."
427 msgstr ""
428
429 #. type: TP
430 #: build/C/man7/epoll.7:305
431 #, no-wrap
432 msgid "B<Q1>"
433 msgstr ""
434
435 #. type: Plain text
436 #: build/C/man7/epoll.7:310
437 msgid ""
438 "What happens if you register the same file descriptor on an B<epoll> "
439 "instance twice?"
440 msgstr ""
441
442 #. type: TP
443 #: build/C/man7/epoll.7:310
444 #, no-wrap
445 msgid "B<A1>"
446 msgstr ""
447
448 #.  But a descriptor duplicated by fork(2) can't be added to the
449 #.  set, because the [file *, fd] pair is already in the epoll set.
450 #.  That is a somewhat ugly inconsistency.  On the one hand, a child process
451 #.  cannot add the duplicate file descriptor to the epoll set.  (In every
452 #.  other case that I can think of, descriptors duplicated by fork have
453 #.  similar semantics to descriptors duplicated by dup() and friends.)  On
454 #.  the other hand, the very fact that the child has a duplicate of the
455 #.  descriptor means that even if the parent closes its descriptor, then
456 #.  epoll_wait() in the parent will continue to receive notifications for
457 #.  that descriptor because of the duplicated descriptor in the child.
458 #
459 #.  See http://thread.gmane.org/gmane.linux.kernel/596462/
460 #.  "epoll design problems with common fork/exec patterns"
461 #
462 #.  mtk, Feb 2008
463 #. type: Plain text
464 #: build/C/man7/epoll.7:341
465 msgid ""
466 "You will probably get B<EEXIST>.  However, it is possible to add a duplicate "
467 "(B<dup>(2), B<dup2>(2), B<fcntl>(2)  B<F_DUPFD>)  descriptor to the same "
468 "B<epoll> instance.  This can be a useful technique for filtering events, if "
469 "the duplicate file descriptors are registered with different I<events> "
470 "masks."
471 msgstr ""
472
473 #. type: TP
474 #: build/C/man7/epoll.7:341
475 #, no-wrap
476 msgid "B<Q2>"
477 msgstr ""
478
479 #. type: Plain text
480 #: build/C/man7/epoll.7:349
481 msgid ""
482 "Can two B<epoll> instances wait for the same file descriptor? If so, are "
483 "events reported to both B<epoll> file descriptors?"
484 msgstr ""
485
486 #. type: TP
487 #: build/C/man7/epoll.7:349
488 #, no-wrap
489 msgid "B<A2>"
490 msgstr ""
491
492 #. type: Plain text
493 #: build/C/man7/epoll.7:353
494 msgid ""
495 "Yes, and events would be reported to both.  However, careful programming may "
496 "be needed to do this correctly."
497 msgstr ""
498
499 #. type: TP
500 #: build/C/man7/epoll.7:353
501 #, no-wrap
502 msgid "B<Q3>"
503 msgstr ""
504
505 #. type: Plain text
506 #: build/C/man7/epoll.7:358
507 msgid "Is the B<epoll> file descriptor itself poll/epoll/selectable?"
508 msgstr ""
509
510 #. type: TP
511 #: build/C/man7/epoll.7:358
512 #, no-wrap
513 msgid "B<A3>"
514 msgstr ""
515
516 #. type: Plain text
517 #: build/C/man7/epoll.7:365
518 msgid ""
519 "Yes.  If an B<epoll> file descriptor has events waiting then it will "
520 "indicate as being readable."
521 msgstr ""
522
523 #. type: TP
524 #: build/C/man7/epoll.7:365
525 #, no-wrap
526 msgid "B<Q4>"
527 msgstr ""
528
529 #. type: Plain text
530 #: build/C/man7/epoll.7:370
531 msgid ""
532 "What happens if one attempts to put an B<epoll> file descriptor into its own "
533 "file descriptor set?"
534 msgstr ""
535
536 #. type: TP
537 #: build/C/man7/epoll.7:370
538 #, no-wrap
539 msgid "B<A4>"
540 msgstr ""
541
542 #. type: Plain text
543 #: build/C/man7/epoll.7:381
544 msgid ""
545 "The B<epoll_ctl>(2)  call will fail (B<EINVAL>).  However, you can add an "
546 "B<epoll> file descriptor inside another B<epoll> file descriptor set."
547 msgstr ""
548
549 #. type: TP
550 #: build/C/man7/epoll.7:381
551 #, no-wrap
552 msgid "B<Q5>"
553 msgstr ""
554
555 #. type: Plain text
556 #: build/C/man7/epoll.7:386
557 msgid ""
558 "Can I send an B<epoll> file descriptor over a UNIX domain socket to another "
559 "process?"
560 msgstr ""
561
562 #. type: TP
563 #: build/C/man7/epoll.7:386
564 #, no-wrap
565 msgid "B<A5>"
566 msgstr ""
567
568 #. type: Plain text
569 #: build/C/man7/epoll.7:392
570 msgid ""
571 "Yes, but it does not make sense to do this, since the receiving process "
572 "would not have copies of the file descriptors in the B<epoll> set."
573 msgstr ""
574
575 #. type: TP
576 #: build/C/man7/epoll.7:392
577 #, no-wrap
578 msgid "B<Q6>"
579 msgstr ""
580
581 #. type: Plain text
582 #: build/C/man7/epoll.7:397
583 msgid ""
584 "Will closing a file descriptor cause it to be removed from all B<epoll> sets "
585 "automatically?"
586 msgstr ""
587
588 #. type: TP
589 #: build/C/man7/epoll.7:397
590 #, no-wrap
591 msgid "B<A6>"
592 msgstr ""
593
594 #. type: Plain text
595 #: build/C/man7/epoll.7:425
596 msgid ""
597 "Yes, but be aware of the following point.  A file descriptor is a reference "
598 "to an open file description (see B<open>(2)).  Whenever a descriptor is "
599 "duplicated via B<dup>(2), B<dup2>(2), B<fcntl>(2)  B<F_DUPFD>, or "
600 "B<fork>(2), a new file descriptor referring to the same open file "
601 "description is created.  An open file description continues to exist until "
602 "all file descriptors referring to it have been closed.  A file descriptor is "
603 "removed from an B<epoll> set only after all the file descriptors referring "
604 "to the underlying open file description have been closed (or before if the "
605 "descriptor is explicitly removed using B<epoll_ctl>(2)  B<EPOLL_CTL_DEL>).  "
606 "This means that even after a file descriptor that is part of an B<epoll> set "
607 "has been closed, events may be reported for that file descriptor if other "
608 "file descriptors referring to the same underlying file description remain "
609 "open."
610 msgstr ""
611
612 #. type: TP
613 #: build/C/man7/epoll.7:425
614 #, no-wrap
615 msgid "B<Q7>"
616 msgstr ""
617
618 #. type: Plain text
619 #: build/C/man7/epoll.7:430
620 msgid ""
621 "If more than one event occurs between B<epoll_wait>(2)  calls, are they "
622 "combined or reported separately?"
623 msgstr ""
624
625 #. type: TP
626 #: build/C/man7/epoll.7:430
627 #, no-wrap
628 msgid "B<A7>"
629 msgstr ""
630
631 #. type: Plain text
632 #: build/C/man7/epoll.7:433
633 msgid "They will be combined."
634 msgstr ""
635
636 #. type: TP
637 #: build/C/man7/epoll.7:433
638 #, no-wrap
639 msgid "B<Q8>"
640 msgstr ""
641
642 #. type: Plain text
643 #: build/C/man7/epoll.7:437
644 msgid ""
645 "Does an operation on a file descriptor affect the already collected but not "
646 "yet reported events?"
647 msgstr ""
648
649 #. type: TP
650 #: build/C/man7/epoll.7:437
651 #, no-wrap
652 msgid "B<A8>"
653 msgstr ""
654
655 #. type: Plain text
656 #: build/C/man7/epoll.7:443
657 msgid ""
658 "You can do two operations on an existing file descriptor.  Remove would be "
659 "meaningless for this case.  Modify will reread available I/O."
660 msgstr ""
661
662 #. type: TP
663 #: build/C/man7/epoll.7:443
664 #, no-wrap
665 msgid "B<Q9>"
666 msgstr ""
667
668 #. type: Plain text
669 #: build/C/man7/epoll.7:451
670 msgid ""
671 "Do I need to continuously read/write a file descriptor until B<EAGAIN> when "
672 "using the B<EPOLLET> flag (edge-triggered behavior) ?"
673 msgstr ""
674
675 #. type: TP
676 #: build/C/man7/epoll.7:451
677 #, no-wrap
678 msgid "B<A9>"
679 msgstr ""
680
681 #. type: Plain text
682 #: build/C/man7/epoll.7:461
683 msgid ""
684 "Receiving an event from B<epoll_wait>(2)  should suggest to you that such "
685 "file descriptor is ready for the requested I/O operation.  You must consider "
686 "it ready until the next (nonblocking)  read/write yields B<EAGAIN>.  When "
687 "and how you will use the file descriptor is entirely up to you."
688 msgstr ""
689
690 #. type: Plain text
691 #: build/C/man7/epoll.7:467
692 msgid ""
693 "For packet/token-oriented files (e.g., datagram socket, terminal in "
694 "canonical mode), the only way to detect the end of the read/write I/O space "
695 "is to continue to read/write until B<EAGAIN>."
696 msgstr ""
697
698 #. type: Plain text
699 #: build/C/man7/epoll.7:483
700 msgid ""
701 "For stream-oriented files (e.g., pipe, FIFO, stream socket), the condition "
702 "that the read/write I/O space is exhausted can also be detected by checking "
703 "the amount of data read from / written to the target file descriptor.  For "
704 "example, if you call B<read>(2)  by asking to read a certain amount of data "
705 "and B<read>(2)  returns a lower number of bytes, you can be sure of having "
706 "exhausted the read I/O space for the file descriptor.  The same is true when "
707 "writing using B<write>(2).  (Avoid this latter technique if you cannot "
708 "guarantee that the monitored file descriptor always refers to a "
709 "stream-oriented file.)"
710 msgstr ""
711
712 #. type: SS
713 #: build/C/man7/epoll.7:483
714 #, no-wrap
715 msgid "Possible Pitfalls and Ways to Avoid Them"
716 msgstr ""
717
718 #. type: TP
719 #: build/C/man7/epoll.7:484
720 #, no-wrap
721 msgid "B<o Starvation (edge-triggered)>"
722 msgstr ""
723
724 #. type: Plain text
725 #: build/C/man7/epoll.7:492
726 msgid ""
727 "If there is a large amount of I/O space, it is possible that by trying to "
728 "drain it the other files will not get processed causing starvation.  (This "
729 "problem is not specific to B<epoll>.)"
730 msgstr ""
731
732 #. type: Plain text
733 #: build/C/man7/epoll.7:500
734 msgid ""
735 "The solution is to maintain a ready list and mark the file descriptor as "
736 "ready in its associated data structure, thereby allowing the application to "
737 "remember which files need to be processed but still round robin amongst all "
738 "the ready files.  This also supports ignoring subsequent events you receive "
739 "for file descriptors that are already ready."
740 msgstr ""
741
742 #. type: TP
743 #: build/C/man7/epoll.7:500
744 #, no-wrap
745 msgid "B<o If using an event cache...>"
746 msgstr ""
747
748 #. type: Plain text
749 #: build/C/man7/epoll.7:516
750 msgid ""
751 "If you use an event cache or store all the file descriptors returned from "
752 "B<epoll_wait>(2), then make sure to provide a way to mark its closure "
753 "dynamically (i.e., caused by a previous event's processing).  Suppose you "
754 "receive 100 events from B<epoll_wait>(2), and in event #47 a condition "
755 "causes event #13 to be closed.  If you remove the structure and B<close>(2)  "
756 "the file descriptor for event #13, then your event cache might still say "
757 "there are events waiting for that file descriptor causing confusion."
758 msgstr ""
759
760 #. type: Plain text
761 #: build/C/man7/epoll.7:527
762 msgid ""
763 "One solution for this is to call, during the processing of event 47, "
764 "B<epoll_ctl>(B<EPOLL_CTL_DEL>)  to delete file descriptor 13 and "
765 "B<close>(2), then mark its associated data structure as removed and link it "
766 "to a cleanup list.  If you find another event for file descriptor 13 in your "
767 "batch processing, you will discover the file descriptor had been previously "
768 "removed and there will be no confusion."
769 msgstr ""
770
771 #. type: SH
772 #: build/C/man7/epoll.7:527 build/C/man2/epoll_create.2:114 build/C/man2/epoll_ctl.2:224 build/C/man2/epoll_wait.2:174 build/C/man2/poll.2:286
773 #, no-wrap
774 msgid "VERSIONS"
775 msgstr ""
776
777 #.  Its interface should be finalized in Linux kernel 2.5.66.
778 #. type: Plain text
779 #: build/C/man7/epoll.7:533
780 msgid ""
781 "The B<epoll> API was introduced in Linux kernel 2.5.44.  Support was added "
782 "to glibc in version 2.3.2."
783 msgstr ""
784
785 #. type: SH
786 #: build/C/man7/epoll.7:533 build/C/man2/epoll_create.2:124 build/C/man2/epoll_ctl.2:229 build/C/man2/epoll_wait.2:184 build/C/man2/poll.2:306
787 #, no-wrap
788 msgid "CONFORMING TO"
789 msgstr ""
790
791 #. type: Plain text
792 #: build/C/man7/epoll.7:542
793 msgid ""
794 "The B<epoll> API is Linux-specific.  Some other systems provide similar "
795 "mechanisms, for example, FreeBSD has I<kqueue>, and Solaris has "
796 "I</dev/poll>."
797 msgstr ""
798
799 #. type: SH
800 #: build/C/man7/epoll.7:542 build/C/man2/epoll_create.2:133 build/C/man2/epoll_ctl.2:252 build/C/man2/epoll_wait.2:187 build/C/man2/poll.2:338
801 #, no-wrap
802 msgid "SEE ALSO"
803 msgstr ""
804
805 #. type: Plain text
806 #: build/C/man7/epoll.7:547
807 msgid "B<epoll_create>(2), B<epoll_create1>(2), B<epoll_ctl>(2), B<epoll_wait>(2)"
808 msgstr ""
809
810 #. type: SH
811 #: build/C/man7/epoll.7:547 build/C/man2/epoll_create.2:138 build/C/man2/epoll_ctl.2:257 build/C/man2/epoll_wait.2:191 build/C/man2/poll.2:342
812 #, no-wrap
813 msgid "COLOPHON"
814 msgstr ""
815
816 #. type: Plain text
817 #: build/C/man7/epoll.7:554 build/C/man2/epoll_create.2:145 build/C/man2/epoll_ctl.2:264 build/C/man2/epoll_wait.2:198 build/C/man2/poll.2:349
818 msgid ""
819 "This page is part of release 3.37 of the Linux I<man-pages> project.  A "
820 "description of the project, and information about reporting bugs, can be "
821 "found at http://www.kernel.org/doc/man-pages/."
822 msgstr ""
823
824 #. type: TH
825 #: build/C/man2/epoll_create.2:25
826 #, no-wrap
827 msgid "EPOLL_CREATE"
828 msgstr ""
829
830 #. type: TH
831 #: build/C/man2/epoll_create.2:25 build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23
832 #, no-wrap
833 msgid "2010-12-03"
834 msgstr ""
835
836 #. type: Plain text
837 #: build/C/man2/epoll_create.2:28
838 msgid "epoll_create, epoll_create1 - open an epoll file descriptor"
839 msgstr ""
840
841 #. type: Plain text
842 #: build/C/man2/epoll_create.2:31 build/C/man2/epoll_wait.2:29
843 #, no-wrap
844 msgid "B<#include E<lt>sys/epoll.hE<gt>>\n"
845 msgstr ""
846
847 #. type: Plain text
848 #: build/C/man2/epoll_create.2:34
849 #, no-wrap
850 msgid ""
851 "B<int epoll_create(int >I<size>B<);>\n"
852 "B<int epoll_create1(int >I<flags>B<);>\n"
853 msgstr ""
854
855 #. type: Plain text
856 #: build/C/man2/epoll_create.2:48
857 msgid ""
858 "B<epoll_create>()  creates an epoll \"instance\", requesting the kernel to "
859 "allocate an event backing store dimensioned for I<size> descriptors.  The "
860 "I<size> is not the maximum size of the backing store but just a hint to the "
861 "kernel about how to dimension internal structures.  (Nowadays, I<size> is "
862 "unused; see NOTES below.)"
863 msgstr ""
864
865 #. type: Plain text
866 #: build/C/man2/epoll_create.2:61
867 msgid ""
868 "B<epoll_create>()  returns a file descriptor referring to the new epoll "
869 "instance.  This file descriptor is used for all the subsequent calls to the "
870 "B<epoll> interface.  When no longer required, the file descriptor returned "
871 "by B<epoll_create>()  should be closed by using B<close>(2).  When all file "
872 "descriptors referring to an epoll instance have been closed, the kernel "
873 "destroys the instance and releases the associated resources for reuse."
874 msgstr ""
875
876 #. type: Plain text
877 #: build/C/man2/epoll_create.2:73
878 msgid ""
879 "If I<flags> is 0, then, other than the fact that the obsolete I<size> "
880 "argument is dropped, B<epoll_create1>()  is the same as B<epoll_create>().  "
881 "The following value can be included in I<flags> to obtain different "
882 "behavior:"
883 msgstr ""
884
885 #. type: TP
886 #: build/C/man2/epoll_create.2:73
887 #, no-wrap
888 msgid "B<EPOLL_CLOEXEC>"
889 msgstr ""
890
891 #. type: Plain text
892 #: build/C/man2/epoll_create.2:83
893 msgid ""
894 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
895 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
896 "may be useful."
897 msgstr ""
898
899 #. type: SH
900 #: build/C/man2/epoll_create.2:83 build/C/man2/epoll_ctl.2:156 build/C/man2/epoll_wait.2:137 build/C/man2/poll.2:257
901 #, no-wrap
902 msgid "RETURN VALUE"
903 msgstr ""
904
905 #. type: Plain text
906 #: build/C/man2/epoll_create.2:90
907 msgid ""
908 "On success, these system calls return a nonnegative file descriptor.  On "
909 "error, -1 is returned, and I<errno> is set to indicate the error."
910 msgstr ""
911
912 #. type: SH
913 #: build/C/man2/epoll_create.2:90 build/C/man2/epoll_ctl.2:165 build/C/man2/epoll_wait.2:149 build/C/man2/poll.2:267
914 #, no-wrap
915 msgid "ERRORS"
916 msgstr ""
917
918 #. type: TP
919 #: build/C/man2/epoll_create.2:91 build/C/man2/epoll_create.2:95 build/C/man2/epoll_ctl.2:180 build/C/man2/epoll_wait.2:166 build/C/man2/poll.2:276
920 #, no-wrap
921 msgid "B<EINVAL>"
922 msgstr ""
923
924 #. type: Plain text
925 #: build/C/man2/epoll_create.2:95
926 msgid "I<size> is not positive."
927 msgstr ""
928
929 #. type: Plain text
930 #: build/C/man2/epoll_create.2:100
931 msgid "(B<epoll_create1>())  Invalid value specified in I<flags>."
932 msgstr ""
933
934 #. type: TP
935 #: build/C/man2/epoll_create.2:100
936 #, no-wrap
937 msgid "B<EMFILE>"
938 msgstr ""
939
940 #. type: Plain text
941 #: build/C/man2/epoll_create.2:108
942 msgid ""
943 "The per-user limit on the number of epoll instances imposed by "
944 "I</proc/sys/fs/epoll/max_user_instances> was encountered.  See B<epoll>(7)  "
945 "for further details."
946 msgstr ""
947
948 #. type: TP
949 #: build/C/man2/epoll_create.2:108
950 #, no-wrap
951 msgid "B<ENFILE>"
952 msgstr ""
953
954 #. type: Plain text
955 #: build/C/man2/epoll_create.2:111
956 msgid "The system limit on the total number of open files has been reached."
957 msgstr ""
958
959 #. type: TP
960 #: build/C/man2/epoll_create.2:111 build/C/man2/epoll_ctl.2:203 build/C/man2/poll.2:283
961 #, no-wrap
962 msgid "B<ENOMEM>"
963 msgstr ""
964
965 #. type: Plain text
966 #: build/C/man2/epoll_create.2:114
967 msgid "There was insufficient memory to create the kernel object."
968 msgstr ""
969
970 #. type: Plain text
971 #: build/C/man2/epoll_create.2:118
972 msgid ""
973 "B<epoll_create>()  was added to the kernel in version 2.6.  Library support "
974 "is provided in glibc starting with version 2.3.2."
975 msgstr ""
976
977 #.  To be precise: kernel 2.5.44.
978 #.  The interface should be finalized by Linux kernel 2.5.66.
979 #. type: Plain text
980 #: build/C/man2/epoll_create.2:124
981 msgid ""
982 "B<epoll_create1>()  was added to the kernel in version 2.6.27.  Library "
983 "support is provided in glibc starting with version 2.9."
984 msgstr ""
985
986 #. type: Plain text
987 #: build/C/man2/epoll_create.2:127
988 msgid "B<epoll_create>()  is Linux-specific."
989 msgstr ""
990
991 #. type: SH
992 #: build/C/man2/epoll_create.2:127 build/C/man2/epoll_ctl.2:233 build/C/man2/poll.2:312
993 #, no-wrap
994 msgid "NOTES"
995 msgstr ""
996
997 #. type: Plain text
998 #: build/C/man2/epoll_create.2:133
999 msgid ""
1000 "Since Linux 2.6.8, the I<size> argument is unused, but must be greater than "
1001 "zero.  (The kernel dynamically sizes the required data structures without "
1002 "needing this initial hint.)"
1003 msgstr ""
1004
1005 #. type: Plain text
1006 #: build/C/man2/epoll_create.2:138
1007 msgid "B<close>(2), B<epoll_ctl>(2), B<epoll_wait>(2), B<epoll>(7)"
1008 msgstr ""
1009
1010 #. type: TH
1011 #: build/C/man2/epoll_ctl.2:21
1012 #, no-wrap
1013 msgid "EPOLL_CTL"
1014 msgstr ""
1015
1016 #. type: Plain text
1017 #: build/C/man2/epoll_ctl.2:24
1018 msgid "epoll_ctl - control interface for an epoll descriptor"
1019 msgstr ""
1020
1021 #. type: Plain text
1022 #: build/C/man2/epoll_ctl.2:29
1023 msgid ""
1024 "B<int epoll_ctl(int >I<epfd>B<, int >I<op>B<, int >I<fd>B<, struct "
1025 "epoll_event *>I<event>B<);>"
1026 msgstr ""
1027
1028 #. type: Plain text
1029 #: build/C/man2/epoll_ctl.2:37
1030 msgid ""
1031 "This system call performs control operations on the epoll instance referred "
1032 "to by the file descriptor I<epfd>.  It requests that the operation I<op> be "
1033 "performed for the target file descriptor, I<fd>."
1034 msgstr ""
1035
1036 #. type: Plain text
1037 #: build/C/man2/epoll_ctl.2:41
1038 msgid "Valid values for the I<op> argument are :"
1039 msgstr ""
1040
1041 #. type: TP
1042 #: build/C/man2/epoll_ctl.2:41
1043 #, no-wrap
1044 msgid "B<EPOLL_CTL_ADD>"
1045 msgstr ""
1046
1047 #. type: Plain text
1048 #: build/C/man2/epoll_ctl.2:53
1049 msgid ""
1050 "Register the target file descriptor I<fd> on the B<epoll> instance referred "
1051 "to by the file descriptor I<epfd> and associate the event I<event> with the "
1052 "internal file linked to I<fd>."
1053 msgstr ""
1054
1055 #. type: TP
1056 #: build/C/man2/epoll_ctl.2:53
1057 #, no-wrap
1058 msgid "B<EPOLL_CTL_MOD>"
1059 msgstr ""
1060
1061 #. type: Plain text
1062 #: build/C/man2/epoll_ctl.2:59
1063 msgid "Change the event I<event> associated with the target file descriptor I<fd>."
1064 msgstr ""
1065
1066 #. type: TP
1067 #: build/C/man2/epoll_ctl.2:59
1068 #, no-wrap
1069 msgid "B<EPOLL_CTL_DEL>"
1070 msgstr ""
1071
1072 #. type: Plain text
1073 #: build/C/man2/epoll_ctl.2:70
1074 msgid ""
1075 "Remove (deregister) the target file descriptor I<fd> from the B<epoll> "
1076 "instance referred to by I<epfd>.  The I<event> is ignored and can be NULL "
1077 "(but see BUGS below)."
1078 msgstr ""
1079
1080 #. type: Plain text
1081 #: build/C/man2/epoll_ctl.2:78
1082 msgid ""
1083 "The I<event> argument describes the object linked to the file descriptor "
1084 "I<fd>.  The I<struct epoll_event> is defined as :"
1085 msgstr ""
1086
1087 #. type: Plain text
1088 #: build/C/man2/epoll_ctl.2:87
1089 #, no-wrap
1090 msgid ""
1091 "typedef union epoll_data {\n"
1092 "    void        *ptr;\n"
1093 "    int          fd;\n"
1094 "    uint32_t     u32;\n"
1095 "    uint64_t     u64;\n"
1096 "} epoll_data_t;\n"
1097 msgstr ""
1098
1099 #. type: Plain text
1100 #: build/C/man2/epoll_ctl.2:92
1101 #, no-wrap
1102 msgid ""
1103 "struct epoll_event {\n"
1104 "    uint32_t     events;      /* Epoll events */\n"
1105 "    epoll_data_t data;        /* User data variable */\n"
1106 "};\n"
1107 msgstr ""
1108
1109 #. type: Plain text
1110 #: build/C/man2/epoll_ctl.2:99
1111 msgid ""
1112 "The I<events> member is a bit set composed using the following available "
1113 "event types:"
1114 msgstr ""
1115
1116 #. type: TP
1117 #: build/C/man2/epoll_ctl.2:99
1118 #, no-wrap
1119 msgid "B<EPOLLIN>"
1120 msgstr ""
1121
1122 #. type: Plain text
1123 #: build/C/man2/epoll_ctl.2:104
1124 msgid "The associated file is available for B<read>(2)  operations."
1125 msgstr ""
1126
1127 #. type: TP
1128 #: build/C/man2/epoll_ctl.2:104
1129 #, no-wrap
1130 msgid "B<EPOLLOUT>"
1131 msgstr ""
1132
1133 #. type: Plain text
1134 #: build/C/man2/epoll_ctl.2:109
1135 msgid "The associated file is available for B<write>(2)  operations."
1136 msgstr ""
1137
1138 #. type: TP
1139 #: build/C/man2/epoll_ctl.2:109
1140 #, no-wrap
1141 msgid "B<EPOLLRDHUP> (since Linux 2.6.17)"
1142 msgstr ""
1143
1144 #. type: Plain text
1145 #: build/C/man2/epoll_ctl.2:115
1146 msgid ""
1147 "Stream socket peer closed connection, or shut down writing half of "
1148 "connection.  (This flag is especially useful for writing simple code to "
1149 "detect peer shutdown when using Edge Triggered monitoring.)"
1150 msgstr ""
1151
1152 #. type: TP
1153 #: build/C/man2/epoll_ctl.2:115
1154 #, no-wrap
1155 msgid "B<EPOLLPRI>"
1156 msgstr ""
1157
1158 #. type: Plain text
1159 #: build/C/man2/epoll_ctl.2:120
1160 msgid "There is urgent data available for B<read>(2)  operations."
1161 msgstr ""
1162
1163 #. type: TP
1164 #: build/C/man2/epoll_ctl.2:120
1165 #, no-wrap
1166 msgid "B<EPOLLERR>"
1167 msgstr ""
1168
1169 #. type: Plain text
1170 #: build/C/man2/epoll_ctl.2:126
1171 msgid ""
1172 "Error condition happened on the associated file descriptor.  "
1173 "B<epoll_wait>(2)  will always wait for this event; it is not necessary to "
1174 "set it in I<events>."
1175 msgstr ""
1176
1177 #. type: TP
1178 #: build/C/man2/epoll_ctl.2:126
1179 #, no-wrap
1180 msgid "B<EPOLLHUP>"
1181 msgstr ""
1182
1183 #. type: Plain text
1184 #: build/C/man2/epoll_ctl.2:132
1185 msgid ""
1186 "Hang up happened on the associated file descriptor.  B<epoll_wait>(2)  will "
1187 "always wait for this event; it is not necessary to set it in I<events>."
1188 msgstr ""
1189
1190 #. type: TP
1191 #: build/C/man2/epoll_ctl.2:132
1192 #, no-wrap
1193 msgid "B<EPOLLET>"
1194 msgstr ""
1195
1196 #. type: Plain text
1197 #: build/C/man2/epoll_ctl.2:142
1198 msgid ""
1199 "Sets the Edge Triggered behavior for the associated file descriptor.  The "
1200 "default behavior for B<epoll> is Level Triggered.  See B<epoll>(7)  for more "
1201 "detailed information about Edge and Level Triggered event distribution "
1202 "architectures."
1203 msgstr ""
1204
1205 #. type: TP
1206 #: build/C/man2/epoll_ctl.2:142
1207 #, no-wrap
1208 msgid "B<EPOLLONESHOT> (since Linux 2.6.2)"
1209 msgstr ""
1210
1211 #. type: Plain text
1212 #: build/C/man2/epoll_ctl.2:156
1213 msgid ""
1214 "Sets the one-shot behavior for the associated file descriptor.  This means "
1215 "that after an event is pulled out with B<epoll_wait>(2)  the associated file "
1216 "descriptor is internally disabled and no other events will be reported by "
1217 "the B<epoll> interface.  The user must call B<epoll_ctl>()  with "
1218 "B<EPOLL_CTL_MOD> to rearm the file descriptor with a new event mask."
1219 msgstr ""
1220
1221 #. type: Plain text
1222 #: build/C/man2/epoll_ctl.2:165
1223 msgid ""
1224 "When successful, B<epoll_ctl>()  returns zero.  When an error occurs, "
1225 "B<epoll_ctl>()  returns -1 and I<errno> is set appropriately."
1226 msgstr ""
1227
1228 #. type: TP
1229 #: build/C/man2/epoll_ctl.2:166 build/C/man2/epoll_wait.2:150
1230 #, no-wrap
1231 msgid "B<EBADF>"
1232 msgstr ""
1233
1234 #. type: Plain text
1235 #: build/C/man2/epoll_ctl.2:172
1236 msgid "I<epfd> or I<fd> is not a valid file descriptor."
1237 msgstr ""
1238
1239 #. type: TP
1240 #: build/C/man2/epoll_ctl.2:172
1241 #, no-wrap
1242 msgid "B<EEXIST>"
1243 msgstr ""
1244
1245 #. type: Plain text
1246 #: build/C/man2/epoll_ctl.2:180
1247 msgid ""
1248 "I<op> was B<EPOLL_CTL_ADD>, and the supplied file descriptor I<fd> is "
1249 "already registered with this epoll instance."
1250 msgstr ""
1251
1252 #. type: Plain text
1253 #: build/C/man2/epoll_ctl.2:193
1254 msgid ""
1255 "I<epfd> is not an B<epoll> file descriptor, or I<fd> is the same as I<epfd>, "
1256 "or the requested operation I<op> is not supported by this interface."
1257 msgstr ""
1258
1259 #. type: TP
1260 #: build/C/man2/epoll_ctl.2:193
1261 #, no-wrap
1262 msgid "B<ENOENT>"
1263 msgstr ""
1264
1265 #. type: Plain text
1266 #: build/C/man2/epoll_ctl.2:203
1267 msgid ""
1268 "I<op> was B<EPOLL_CTL_MOD> or B<EPOLL_CTL_DEL>, and I<fd> is not registered "
1269 "with this epoll instance."
1270 msgstr ""
1271
1272 #. type: Plain text
1273 #: build/C/man2/epoll_ctl.2:208
1274 msgid ""
1275 "There was insufficient memory to handle the requested I<op> control "
1276 "operation."
1277 msgstr ""
1278
1279 #. type: TP
1280 #: build/C/man2/epoll_ctl.2:208
1281 #, no-wrap
1282 msgid "B<ENOSPC>"
1283 msgstr ""
1284
1285 #. type: Plain text
1286 #: build/C/man2/epoll_ctl.2:218
1287 msgid ""
1288 "The limit imposed by I</proc/sys/fs/epoll/max_user_watches> was encountered "
1289 "while trying to register (B<EPOLL_CTL_ADD>)  a new file descriptor on an "
1290 "epoll instance.  See B<epoll>(7)  for further details."
1291 msgstr ""
1292
1293 #. type: TP
1294 #: build/C/man2/epoll_ctl.2:218
1295 #, no-wrap
1296 msgid "B<EPERM>"
1297 msgstr ""
1298
1299 #. type: Plain text
1300 #: build/C/man2/epoll_ctl.2:224
1301 msgid "The target file I<fd> does not support B<epoll>."
1302 msgstr ""
1303
1304 #.  To be precise: kernel 2.5.44.
1305 #.  The interface should be finalized by Linux kernel 2.5.66.
1306 #. type: Plain text
1307 #: build/C/man2/epoll_ctl.2:229
1308 msgid "B<epoll_ctl>()  was added to the kernel in version 2.6."
1309 msgstr ""
1310
1311 #. type: Plain text
1312 #: build/C/man2/epoll_ctl.2:233
1313 msgid ""
1314 "B<epoll_ctl>()  is Linux-specific.  Library support is provided in glibc "
1315 "starting with version 2.3.2."
1316 msgstr ""
1317
1318 #. type: Plain text
1319 #: build/C/man2/epoll_ctl.2:238
1320 msgid ""
1321 "The B<epoll> interface supports all file descriptors that support "
1322 "B<poll>(2)."
1323 msgstr ""
1324
1325 #. type: SH
1326 #: build/C/man2/epoll_ctl.2:238 build/C/man2/poll.2:334
1327 #, no-wrap
1328 msgid "BUGS"
1329 msgstr ""
1330
1331 #. type: Plain text
1332 #: build/C/man2/epoll_ctl.2:252
1333 msgid ""
1334 "In kernel versions before 2.6.9, the B<EPOLL_CTL_DEL> operation required a "
1335 "non-NULL pointer in I<event>, even though this argument is ignored.  Since "
1336 "Linux 2.6.9, I<event> can be specified as NULL when using B<EPOLL_CTL_DEL>.  "
1337 "Applications that need to be portable to kernels before 2.6.9 should specify "
1338 "a non-NULL pointer in I<event>."
1339 msgstr ""
1340
1341 #. type: Plain text
1342 #: build/C/man2/epoll_ctl.2:257
1343 msgid "B<epoll_create>(2), B<epoll_wait>(2), B<poll>(2), B<epoll>(7)"
1344 msgstr ""
1345
1346 #. type: TH
1347 #: build/C/man2/epoll_wait.2:23
1348 #, no-wrap
1349 msgid "EPOLL_WAIT"
1350 msgstr ""
1351
1352 #. type: Plain text
1353 #: build/C/man2/epoll_wait.2:26
1354 msgid "epoll_wait, epoll_pwait - wait for an I/O event on an epoll file descriptor"
1355 msgstr ""
1356
1357 #. type: Plain text
1358 #: build/C/man2/epoll_wait.2:35
1359 #, no-wrap
1360 msgid ""
1361 "B<int epoll_wait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
1362 "B<               int >I<maxevents>B<, int >I<timeout>B<);>\n"
1363 "B<int epoll_pwait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
1364 "B<               int >I<maxevents>B<, int >I<timeout>B<,>\n"
1365 "B<               const sigset_t *>I<sigmask>B<);>\n"
1366 msgstr ""
1367
1368 #. type: Plain text
1369 #: build/C/man2/epoll_wait.2:53
1370 msgid ""
1371 "The B<epoll_wait>()  system call waits for events on the B<epoll> instance "
1372 "referred to by the file descriptor I<epfd>.  The memory area pointed to by "
1373 "I<events> will contain the events that will be available for the caller.  Up "
1374 "to I<maxevents> are returned by B<epoll_wait>().  The I<maxevents> argument "
1375 "must be greater than zero."
1376 msgstr ""
1377
1378 #. type: Plain text
1379 #: build/C/man2/epoll_wait.2:67
1380 msgid ""
1381 "The call waits for a maximum time of I<timeout> milliseconds.  Specifying a "
1382 "I<timeout> of -1 makes B<epoll_wait>()  wait indefinitely, while specifying "
1383 "a I<timeout> equal to zero makes B<epoll_wait>()  to return immediately even "
1384 "if no events are available (return code equal to zero)."
1385 msgstr ""
1386
1387 #. type: Plain text
1388 #: build/C/man2/epoll_wait.2:71
1389 msgid "The I<struct epoll_event> is defined as :"
1390 msgstr ""
1391
1392 #. type: Plain text
1393 #: build/C/man2/epoll_wait.2:80
1394 #, no-wrap
1395 msgid ""
1396 "typedef union epoll_data {\n"
1397 "    void    *ptr;\n"
1398 "    int      fd;\n"
1399 "    uint32_t u32;\n"
1400 "    uint64_t u64;\n"
1401 "} epoll_data_t;\n"
1402 msgstr ""
1403
1404 #. type: Plain text
1405 #: build/C/man2/epoll_wait.2:85
1406 #, no-wrap
1407 msgid ""
1408 "struct epoll_event {\n"
1409 "    uint32_t     events;    /* Epoll events */\n"
1410 "    epoll_data_t data;      /* User data variable */\n"
1411 "};\n"
1412 msgstr ""
1413
1414 #. type: Plain text
1415 #: build/C/man2/epoll_wait.2:96
1416 msgid ""
1417 "The I<data> of each returned structure will contain the same data the user "
1418 "set with an B<epoll_ctl>(2)  (B<EPOLL_CTL_ADD>,B<EPOLL_CTL_MOD>)  while the "
1419 "I<events> member will contain the returned event bit field."
1420 msgstr ""
1421
1422 #. type: SS
1423 #: build/C/man2/epoll_wait.2:96
1424 #, no-wrap
1425 msgid "epoll_pwait()"
1426 msgstr ""
1427
1428 #. type: Plain text
1429 #: build/C/man2/epoll_wait.2:110
1430 msgid ""
1431 "The relationship between B<epoll_wait>()  and B<epoll_pwait>()  is analogous "
1432 "to the relationship between B<select>(2)  and B<pselect>(2): like "
1433 "B<pselect>(2), B<epoll_pwait>()  allows an application to safely wait until "
1434 "either a file descriptor becomes ready or until a signal is caught."
1435 msgstr ""
1436
1437 #. type: Plain text
1438 #: build/C/man2/epoll_wait.2:114
1439 msgid "The following B<epoll_pwait>()  call:"
1440 msgstr ""
1441
1442 #. type: Plain text
1443 #: build/C/man2/epoll_wait.2:117
1444 #, no-wrap
1445 msgid "    ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);\n"
1446 msgstr ""
1447
1448 #. type: Plain text
1449 #: build/C/man2/epoll_wait.2:122 build/C/man2/poll.2:206
1450 msgid "is equivalent to I<atomically> executing the following calls:"
1451 msgstr ""
1452
1453 #. type: Plain text
1454 #: build/C/man2/epoll_wait.2:125
1455 #, no-wrap
1456 msgid "    sigset_t origmask;\n"
1457 msgstr ""
1458
1459 #. type: Plain text
1460 #: build/C/man2/epoll_wait.2:129
1461 #, no-wrap
1462 msgid ""
1463 "    sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
1464 "    ready = epoll_wait(epfd, &events, maxevents, timeout);\n"
1465 "    sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
1466 msgstr ""
1467
1468 #. type: Plain text
1469 #: build/C/man2/epoll_wait.2:137
1470 msgid ""
1471 "The I<sigmask> argument may be specified as NULL, in which case "
1472 "B<epoll_pwait>()  is equivalent to B<epoll_wait>()."
1473 msgstr ""
1474
1475 #. type: Plain text
1476 #: build/C/man2/epoll_wait.2:149
1477 msgid ""
1478 "When successful, B<epoll_wait>()  returns the number of file descriptors "
1479 "ready for the requested I/O, or zero if no file descriptor became ready "
1480 "during the requested I<timeout> milliseconds.  When an error occurs, "
1481 "B<epoll_wait>()  returns -1 and I<errno> is set appropriately."
1482 msgstr ""
1483
1484 #. type: Plain text
1485 #: build/C/man2/epoll_wait.2:154
1486 msgid "I<epfd> is not a valid file descriptor."
1487 msgstr ""
1488
1489 #. type: TP
1490 #: build/C/man2/epoll_wait.2:154 build/C/man2/poll.2:268
1491 #, no-wrap
1492 msgid "B<EFAULT>"
1493 msgstr ""
1494
1495 #. type: Plain text
1496 #: build/C/man2/epoll_wait.2:159
1497 msgid ""
1498 "The memory area pointed to by I<events> is not accessible with write "
1499 "permissions."
1500 msgstr ""
1501
1502 #. type: TP
1503 #: build/C/man2/epoll_wait.2:159 build/C/man2/poll.2:272
1504 #, no-wrap
1505 msgid "B<EINTR>"
1506 msgstr ""
1507
1508 #. type: Plain text
1509 #: build/C/man2/epoll_wait.2:166
1510 msgid ""
1511 "The call was interrupted by a signal handler before any of the requested "
1512 "events occurred or the I<timeout> expired; see B<signal>(7)."
1513 msgstr ""
1514
1515 #. type: Plain text
1516 #: build/C/man2/epoll_wait.2:174
1517 msgid ""
1518 "I<epfd> is not an B<epoll> file descriptor, or I<maxevents> is less than or "
1519 "equal to zero."
1520 msgstr ""
1521
1522 #.  To be precise: kernel 2.5.44.
1523 #.  The interface should be finalized by Linux kernel 2.5.66.
1524 #. type: Plain text
1525 #: build/C/man2/epoll_wait.2:180
1526 msgid ""
1527 "B<epoll_wait>()  was added to the kernel in version 2.6.  Library support is "
1528 "provided in glibc starting with version 2.3.2."
1529 msgstr ""
1530
1531 #. type: Plain text
1532 #: build/C/man2/epoll_wait.2:184
1533 msgid ""
1534 "B<epoll_pwait>()  was added to Linux in kernel 2.6.19.  Library support is "
1535 "provided in glibc starting with version 2.6."
1536 msgstr ""
1537
1538 #. type: Plain text
1539 #: build/C/man2/epoll_wait.2:187
1540 msgid "B<epoll_wait>()  is Linux-specific."
1541 msgstr ""
1542
1543 #. type: Plain text
1544 #: build/C/man2/epoll_wait.2:191
1545 msgid "B<epoll_create>(2), B<epoll_ctl>(2), B<epoll>(7)"
1546 msgstr ""
1547
1548 #. type: TH
1549 #: build/C/man2/poll.2:31
1550 #, no-wrap
1551 msgid "POLL"
1552 msgstr ""
1553
1554 #. type: TH
1555 #: build/C/man2/poll.2:31
1556 #, no-wrap
1557 msgid "2010-09-20"
1558 msgstr ""
1559
1560 #. type: Plain text
1561 #: build/C/man2/poll.2:34
1562 msgid "poll, ppoll - wait for some event on a file descriptor"
1563 msgstr ""
1564
1565 #. type: Plain text
1566 #: build/C/man2/poll.2:37
1567 #, no-wrap
1568 msgid "B<#include E<lt>poll.hE<gt>>\n"
1569 msgstr ""
1570
1571 #. type: Plain text
1572 #: build/C/man2/poll.2:39
1573 #, no-wrap
1574 msgid ""
1575 "B<int poll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, int "
1576 ">I<timeout>B<);>\n"
1577 msgstr ""
1578
1579 #. type: Plain text
1580 #: build/C/man2/poll.2:42
1581 #, no-wrap
1582 msgid ""
1583 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
1584 "B<#include E<lt>poll.hE<gt>>\n"
1585 msgstr ""
1586
1587 #. type: Plain text
1588 #: build/C/man2/poll.2:45
1589 #, no-wrap
1590 msgid ""
1591 "B<int ppoll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, >\n"
1592 "B<        const struct timespec *>I<timeout_ts>B<, const sigset_t "
1593 "*>I<sigmask>B<);>\n"
1594 msgstr ""
1595
1596 #. type: Plain text
1597 #: build/C/man2/poll.2:52
1598 msgid ""
1599 "B<poll>()  performs a similar task to B<select>(2): it waits for one of a "
1600 "set of file descriptors to become ready to perform I/O."
1601 msgstr ""
1602
1603 #. type: Plain text
1604 #: build/C/man2/poll.2:56
1605 msgid ""
1606 "The set of file descriptors to be monitored is specified in the I<fds> "
1607 "argument, which is an array of structures of the following form:"
1608 msgstr ""
1609
1610 #. type: Plain text
1611 #: build/C/man2/poll.2:64
1612 #, no-wrap
1613 msgid ""
1614 "struct pollfd {\n"
1615 "    int   fd;         /* file descriptor */\n"
1616 "    short events;     /* requested events */\n"
1617 "    short revents;    /* returned events */\n"
1618 "};\n"
1619 msgstr ""
1620
1621 #. type: Plain text
1622 #: build/C/man2/poll.2:71
1623 msgid ""
1624 "The caller should specify the number of items in the I<fds> array in "
1625 "I<nfds>."
1626 msgstr ""
1627
1628 #. type: Plain text
1629 #: build/C/man2/poll.2:75
1630 msgid "The field I<fd> contains a file descriptor for an open file."
1631 msgstr ""
1632
1633 #. type: Plain text
1634 #: build/C/man2/poll.2:80
1635 msgid ""
1636 "The field I<events> is an input parameter, a bit mask specifying the events "
1637 "the application is interested in."
1638 msgstr ""
1639
1640 #. type: Plain text
1641 #: build/C/man2/poll.2:99
1642 msgid ""
1643 "The field I<revents> is an output parameter, filled by the kernel with the "
1644 "events that actually occurred.  The bits returned in I<revents> can include "
1645 "any of those specified in I<events>, or one of the values B<POLLERR>, "
1646 "B<POLLHUP>, or B<POLLNVAL>.  (These three bits are meaningless in the "
1647 "I<events> field, and will be set in the I<revents> field whenever the "
1648 "corresponding condition is true.)"
1649 msgstr ""
1650
1651 #. type: Plain text
1652 #: build/C/man2/poll.2:104
1653 msgid ""
1654 "If none of the events requested (and no error) has occurred for any of the "
1655 "file descriptors, then B<poll>()  blocks until one of the events occurs."
1656 msgstr ""
1657
1658 #. type: Plain text
1659 #: build/C/man2/poll.2:113
1660 msgid ""
1661 "The I<timeout> argument specifies an upper limit on the time for which "
1662 "B<poll>()  will block, in milliseconds.  Specifying a negative value in "
1663 "I<timeout> means an infinite timeout."
1664 msgstr ""
1665
1666 #. type: Plain text
1667 #: build/C/man2/poll.2:119
1668 msgid ""
1669 "The bits that may be set/returned in I<events> and I<revents> are defined in "
1670 "I<E<lt>poll.hE<gt>>:"
1671 msgstr ""
1672
1673 #. type: TP
1674 #: build/C/man2/poll.2:120
1675 #, no-wrap
1676 msgid "B<POLLIN>"
1677 msgstr ""
1678
1679 #. type: Plain text
1680 #: build/C/man2/poll.2:123
1681 msgid "There is data to read."
1682 msgstr ""
1683
1684 #. type: TP
1685 #: build/C/man2/poll.2:123
1686 #, no-wrap
1687 msgid "B<POLLPRI>"
1688 msgstr ""
1689
1690 #. type: Plain text
1691 #: build/C/man2/poll.2:127
1692 msgid ""
1693 "There is urgent data to read (e.g., out-of-band data on TCP socket; "
1694 "pseudoterminal master in packet mode has seen state change in slave)."
1695 msgstr ""
1696
1697 #. type: TP
1698 #: build/C/man2/poll.2:127
1699 #, no-wrap
1700 msgid "B<POLLOUT>"
1701 msgstr ""
1702
1703 #. type: Plain text
1704 #: build/C/man2/poll.2:130
1705 msgid "Writing now will not block."
1706 msgstr ""
1707
1708 #. type: TP
1709 #: build/C/man2/poll.2:130
1710 #, no-wrap
1711 msgid "B<POLLRDHUP> (since Linux 2.6.17)"
1712 msgstr ""
1713
1714 #. type: Plain text
1715 #: build/C/man2/poll.2:141
1716 msgid ""
1717 "Stream socket peer closed connection, or shut down writing half of "
1718 "connection.  The B<_GNU_SOURCE> feature test macro must be defined (before "
1719 "including I<any> header files)  in order to obtain this definition."
1720 msgstr ""
1721
1722 #. type: TP
1723 #: build/C/man2/poll.2:141
1724 #, no-wrap
1725 msgid "B<POLLERR>"
1726 msgstr ""
1727
1728 #. type: Plain text
1729 #: build/C/man2/poll.2:144
1730 msgid "Error condition (output only)."
1731 msgstr ""
1732
1733 #. type: TP
1734 #: build/C/man2/poll.2:144
1735 #, no-wrap
1736 msgid "B<POLLHUP>"
1737 msgstr ""
1738
1739 #. type: Plain text
1740 #: build/C/man2/poll.2:147
1741 msgid "Hang up (output only)."
1742 msgstr ""
1743
1744 #. type: TP
1745 #: build/C/man2/poll.2:147
1746 #, no-wrap
1747 msgid "B<POLLNVAL>"
1748 msgstr ""
1749
1750 #. type: Plain text
1751 #: build/C/man2/poll.2:152
1752 msgid "Invalid request: I<fd> not open (output only)."
1753 msgstr ""
1754
1755 #. type: Plain text
1756 #: build/C/man2/poll.2:158
1757 msgid ""
1758 "When compiling with B<_XOPEN_SOURCE> defined, one also has the following, "
1759 "which convey no further information beyond the bits listed above:"
1760 msgstr ""
1761
1762 #. type: TP
1763 #: build/C/man2/poll.2:159
1764 #, no-wrap
1765 msgid "B<POLLRDNORM>"
1766 msgstr ""
1767
1768 #. type: Plain text
1769 #: build/C/man2/poll.2:163
1770 msgid "Equivalent to B<POLLIN>."
1771 msgstr ""
1772
1773 #. type: TP
1774 #: build/C/man2/poll.2:163
1775 #, no-wrap
1776 msgid "B<POLLRDBAND>"
1777 msgstr ""
1778
1779 #.  POLLRDBAND is used in the DECnet protocol.
1780 #. type: Plain text
1781 #: build/C/man2/poll.2:167
1782 msgid "Priority band data can be read (generally unused on Linux)."
1783 msgstr ""
1784
1785 #. type: TP
1786 #: build/C/man2/poll.2:167
1787 #, no-wrap
1788 msgid "B<POLLWRNORM>"
1789 msgstr ""
1790
1791 #. type: Plain text
1792 #: build/C/man2/poll.2:171
1793 msgid "Equivalent to B<POLLOUT>."
1794 msgstr ""
1795
1796 #. type: TP
1797 #: build/C/man2/poll.2:171
1798 #, no-wrap
1799 msgid "B<POLLWRBAND>"
1800 msgstr ""
1801
1802 #. type: Plain text
1803 #: build/C/man2/poll.2:174
1804 msgid "Priority data may be written."
1805 msgstr ""
1806
1807 #. type: Plain text
1808 #: build/C/man2/poll.2:178
1809 msgid "Linux also knows about, but does not use B<POLLMSG>."
1810 msgstr ""
1811
1812 #. type: SS
1813 #: build/C/man2/poll.2:178
1814 #, no-wrap
1815 msgid "ppoll()"
1816 msgstr ""
1817
1818 #. type: Plain text
1819 #: build/C/man2/poll.2:192
1820 msgid ""
1821 "The relationship between B<poll>()  and B<ppoll>()  is analogous to the "
1822 "relationship between B<select>(2)  and B<pselect>(2): like B<pselect>(2), "
1823 "B<ppoll>()  allows an application to safely wait until either a file "
1824 "descriptor becomes ready or until a signal is caught."
1825 msgstr ""
1826
1827 #. type: Plain text
1828 #: build/C/man2/poll.2:198
1829 msgid ""
1830 "Other than the difference in the precision of the I<timeout> argument, the "
1831 "following B<ppoll>()  call:"
1832 msgstr ""
1833
1834 #. type: Plain text
1835 #: build/C/man2/poll.2:201
1836 #, no-wrap
1837 msgid "    ready = ppoll(&fds, nfds, timeout_ts, &sigmask);\n"
1838 msgstr ""
1839
1840 #. type: Plain text
1841 #: build/C/man2/poll.2:210
1842 #, no-wrap
1843 msgid ""
1844 "    sigset_t origmask;\n"
1845 "    int timeout;\n"
1846 msgstr ""
1847
1848 #. type: Plain text
1849 #: build/C/man2/poll.2:216
1850 #, no-wrap
1851 msgid ""
1852 "    timeout = (timeout_ts == NULL) ? -1 :\n"
1853 "              (timeout_ts.tv_sec * 1000 + timeout_ts.tv_nsec / 1000000);\n"
1854 "    sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
1855 "    ready = poll(&fds, nfds, timeout);\n"
1856 "    sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
1857 msgstr ""
1858
1859 #. type: Plain text
1860 #: build/C/man2/poll.2:223
1861 msgid ""
1862 "See the description of B<pselect>(2)  for an explanation of why B<ppoll>()  "
1863 "is necessary."
1864 msgstr ""
1865
1866 #. type: Plain text
1867 #: build/C/man2/poll.2:235
1868 msgid ""
1869 "If the I<sigmask> argument is specified as NULL, then no signal mask "
1870 "manipulation is performed (and thus B<ppoll>()  differs from B<poll>()  only "
1871 "in the precision of the I<timeout> argument)."
1872 msgstr ""
1873
1874 #. type: Plain text
1875 #: build/C/man2/poll.2:242
1876 msgid ""
1877 "The I<timeout_ts> argument specifies an upper limit on the amount of time "
1878 "that B<ppoll>()  will block.  This argument is a pointer to a structure of "
1879 "the following form:"
1880 msgstr ""
1881
1882 #. type: Plain text
1883 #: build/C/man2/poll.2:249
1884 #, no-wrap
1885 msgid ""
1886 "struct timespec {\n"
1887 "    long    tv_sec;         /* seconds */\n"
1888 "    long    tv_nsec;        /* nanoseconds */\n"
1889 "};\n"
1890 msgstr ""
1891
1892 #. type: Plain text
1893 #: build/C/man2/poll.2:257
1894 msgid ""
1895 "If I<timeout_ts> is specified as NULL, then B<ppoll>()  can block "
1896 "indefinitely."
1897 msgstr ""
1898
1899 #. type: Plain text
1900 #: build/C/man2/poll.2:267
1901 msgid ""
1902 "On success, a positive number is returned; this is the number of structures "
1903 "which have nonzero I<revents> fields (in other words, those descriptors with "
1904 "events or errors reported).  A value of 0 indicates that the call timed out "
1905 "and no file descriptors were ready.  On error, -1 is returned, and I<errno> "
1906 "is set appropriately."
1907 msgstr ""
1908
1909 #. type: Plain text
1910 #: build/C/man2/poll.2:272
1911 msgid ""
1912 "The array given as argument was not contained in the calling program's "
1913 "address space."
1914 msgstr ""
1915
1916 #. type: Plain text
1917 #: build/C/man2/poll.2:276
1918 msgid "A signal occurred before any requested event; see B<signal>(7)."
1919 msgstr ""
1920
1921 #. type: Plain text
1922 #: build/C/man2/poll.2:283
1923 msgid "The I<nfds> value exceeds the B<RLIMIT_NOFILE> value."
1924 msgstr ""
1925
1926 #. type: Plain text
1927 #: build/C/man2/poll.2:286
1928 msgid "There was no space to allocate file descriptor tables."
1929 msgstr ""
1930
1931 #. type: Plain text
1932 #: build/C/man2/poll.2:299
1933 msgid ""
1934 "The B<poll>()  system call was introduced in Linux 2.1.23.  The B<poll>()  "
1935 "library call was introduced in libc 5.4.28 (and provides emulation using "
1936 "B<select>(2)  if your kernel does not have a B<poll>()  system call)."
1937 msgstr ""
1938
1939 #. type: Plain text
1940 #: build/C/man2/poll.2:306
1941 msgid ""
1942 "The B<ppoll>()  system call was added to Linux in kernel 2.6.16.  The "
1943 "B<ppoll>()  library call was added in glibc 2.4."
1944 msgstr ""
1945
1946 #.  NetBSD 3.0 has a pollts() which is like Linux ppoll().
1947 #. type: Plain text
1948 #: build/C/man2/poll.2:312
1949 msgid "B<poll>()  conforms to POSIX.1-2001.  B<ppoll>()  is Linux-specific."
1950 msgstr ""
1951
1952 #. type: Plain text
1953 #: build/C/man2/poll.2:320
1954 msgid ""
1955 "Some implementations define the nonstandard constant B<INFTIM> with the "
1956 "value -1 for use as a I<timeout> for B<poll>().  This constant is not "
1957 "provided in glibc."
1958 msgstr ""
1959
1960 #. type: SS
1961 #: build/C/man2/poll.2:320
1962 #, no-wrap
1963 msgid "Linux Notes"
1964 msgstr ""
1965
1966 #. type: Plain text
1967 #: build/C/man2/poll.2:334
1968 msgid ""
1969 "The Linux B<ppoll>()  system call modifies its I<timeout_ts> argument.  "
1970 "However, the glibc wrapper function hides this behavior by using a local "
1971 "variable for the timeout argument that is passed to the system call.  Thus, "
1972 "the glibc B<ppoll>()  function does not modify its I<timeout_ts> argument."
1973 msgstr ""
1974
1975 #. type: Plain text
1976 #: build/C/man2/poll.2:338
1977 msgid ""
1978 "See the discussion of spurious readiness notifications under the BUGS "
1979 "section of B<select>(2)."
1980 msgstr ""
1981
1982 #. type: Plain text
1983 #: build/C/man2/poll.2:342
1984 msgid "B<select>(2), B<select_tut>(2), B<time>(7)"
1985 msgstr ""