summaryrefslogtreecommitdiffstats
path: root/templates/man2/poll.2.pot
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templates/man2/poll.2.pot1304
1 files changed, 1304 insertions, 0 deletions
diff --git a/templates/man2/poll.2.pot b/templates/man2/poll.2.pot
new file mode 100644
index 00000000..c04b9bac
--- /dev/null
+++ b/templates/man2/poll.2.pot
@@ -0,0 +1,1304 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 17:04+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "poll"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "poll, ppoll - wait for some event on a file descriptor"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>poll.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<int poll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<, int >I<timeout>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
+"B<#include E<lt>poll.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<int ppoll(struct pollfd *>I<fds>B<, nfds_t >I<nfds>B<,>\n"
+"B< const struct timespec *_Nullable >I<tmo_p>B<,>\n"
+"B< const sigset_t *_Nullable >I<sigmask>B<);>\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<poll>() performs a similar task to B<select>(2): it waits for one of a "
+"set of file descriptors to become ready to perform I/O. The Linux-specific "
+"B<epoll>(7) API performs a similar task, but offers features beyond those "
+"found in B<poll>()."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The set of file descriptors to be monitored is specified in the I<fds> "
+"argument, which is an array of structures of the following form:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct pollfd {\n"
+" int fd; /* file descriptor */\n"
+" short events; /* requested events */\n"
+" short revents; /* returned events */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The caller should specify the number of items in the I<fds> array in I<nfds>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The field I<fd> contains a file descriptor for an open file. If this field "
+"is negative, then the corresponding I<events> field is ignored and the "
+"I<revents> field returns zero. (This provides an easy way of ignoring a "
+"file descriptor for a single B<poll>() call: simply set the I<fd> field to "
+"its bitwise complement.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The field I<events> is an input parameter, a bit mask specifying the events "
+"the application is interested in for the file descriptor I<fd>. This field "
+"may be specified as zero, in which case the only events that can be returned "
+"in I<revents> are B<POLLHUP>, B<POLLERR>, and B<POLLNVAL> (see below)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The field I<revents> is an output parameter, filled by the kernel with the "
+"events that actually occurred. The bits returned in I<revents> can include "
+"any of those specified in I<events>, or one of the values B<POLLERR>, "
+"B<POLLHUP>, or B<POLLNVAL>. (These three bits are meaningless in the "
+"I<events> field, and will be set in the I<revents> field whenever the "
+"corresponding condition is true.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If none of the events requested (and no error) has occurred for any of the "
+"file descriptors, then B<poll>() blocks until one of the events occurs."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<timeout> argument specifies the number of milliseconds that B<poll>() "
+"should block waiting for a file descriptor to become ready. The call will "
+"block until either:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "a file descriptor becomes ready;"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "the call is interrupted by a signal handler; or"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "the timeout expires."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+msgid ""
+"Being \"ready\" means that the requested operation will not block; thus, "
+"B<poll>()ing regular files, block devices, and other files with no "
+"reasonable polling semantic I<always> returns instantly as ready to read and "
+"write."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Note that the I<timeout> interval will be rounded up to the system clock "
+"granularity, and kernel scheduling delays mean that the blocking interval "
+"may overrun by a small amount. Specifying a negative value in I<timeout> "
+"means an infinite timeout. Specifying a I<timeout> of zero causes "
+"B<poll>() to return immediately, even if no file descriptors are ready."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The bits that may be set/returned in I<events> and I<revents> are defined in "
+"I<E<lt>poll.hE<gt>>:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLIN>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There is data to read."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLPRI>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"There is some exceptional condition on the file descriptor. Possibilities "
+"include:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There is out-of-band data on a TCP socket (see B<tcp>(7))."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A pseudoterminal master in packet mode has seen a state change on the slave "
+"(see B<ioctl_tty>(2))."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "A I<cgroup.events> file has been modified (see B<cgroups>(7))."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLOUT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Writing is now possible, though a write larger than the available space in a "
+"socket or pipe will still block (unless B<O_NONBLOCK> is set)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLRDHUP> (since Linux 2.6.17)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Stream socket peer closed connection, or shut down writing half of "
+"connection. The B<_GNU_SOURCE> feature test macro must be defined (before "
+"including I<any> header files) in order to obtain this definition."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLERR>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Error condition (only returned in I<revents>; ignored in I<events>). This "
+"bit is also set for a file descriptor referring to the write end of a pipe "
+"when the read end has been closed."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLHUP>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Hang up (only returned in I<revents>; ignored in I<events>). Note that when "
+"reading from a channel such as a pipe or a stream socket, this event merely "
+"indicates that the peer closed its end of the channel. Subsequent reads "
+"from the channel will return 0 (end of file) only after all outstanding "
+"data in the channel has been consumed."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLNVAL>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Invalid request: I<fd> not open (only returned in I<revents>; ignored in "
+"I<events>)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When compiling with B<_XOPEN_SOURCE> defined, one also has the following, "
+"which convey no further information beyond the bits listed above:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLRDNORM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Equivalent to B<POLLIN>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLRDBAND>"
+msgstr ""
+
+#. POLLRDBAND is used in the DECnet protocol.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Priority band data can be read (generally unused on Linux)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLWRNORM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Equivalent to B<POLLOUT>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<POLLWRBAND>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Priority data may be written."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux also knows about, but does not use B<POLLMSG>."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ppoll()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The relationship between B<poll>() and B<ppoll>() is analogous to the "
+"relationship between B<select>(2) and B<pselect>(2): like B<pselect>(2), "
+"B<ppoll>() allows an application to safely wait until either a file "
+"descriptor becomes ready or until a signal is caught."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Other than the difference in the precision of the I<timeout> argument, the "
+"following B<ppoll>() call:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ready = ppoll(&fds, nfds, tmo_p, &sigmask);\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "is nearly equivalent to I<atomically> executing the following calls:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"sigset_t origmask;\n"
+"int timeout;\n"
+"\\&\n"
+"timeout = (tmo_p == NULL) ? -1 :\n"
+" (tmo_p-E<gt>tv_sec * 1000 + tmo_p-E<gt>tv_nsec / 1000000);\n"
+"pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+"ready = poll(&fds, nfds, timeout);\n"
+"pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The above code segment is described as I<nearly> equivalent because whereas "
+"a negative I<timeout> value for B<poll>() is interpreted as an infinite "
+"timeout, a negative value expressed in I<*tmo_p> results in an error from "
+"B<ppoll>()."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"See the description of B<pselect>(2) for an explanation of why B<ppoll>() "
+"is necessary."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the I<sigmask> argument is specified as NULL, then no signal mask "
+"manipulation is performed (and thus B<ppoll>() differs from B<poll>() only "
+"in the precision of the I<timeout> argument)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<tmo_p> argument specifies an upper limit on the amount of time that "
+"B<ppoll>() will block. This argument is a pointer to a B<timespec>(3) "
+"structure."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<tmo_p> is specified as NULL, then B<ppoll>() can block indefinitely."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, B<poll>() returns a nonnegative value which is the number of "
+"elements in the I<pollfds> whose I<revents> fields have been set to a "
+"nonzero value (indicating an event or an error). A return value of zero "
+"indicates that the system call timed out before any file descriptors became "
+"ready."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "On error, -1 is returned, and I<errno> is set to indicate the error."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EFAULT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<fds> points outside the process's accessible address space. The array "
+"given as argument was not contained in the calling program's address space."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINTR>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "A signal occurred before any requested event; see B<signal>(7)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<nfds> value exceeds the B<RLIMIT_NOFILE> value."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(B<ppoll>()) The timeout value expressed in I<*tmo_p> is invalid (negative)."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOMEM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Unable to allocate memory for kernel data structures."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "VERSIONS"
+msgstr ""
+
+#. Darwin, according to a report by Jeremy Sequoia, relayed by Josh Triplett
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On some other UNIX systems, B<poll>() can fail with the error B<EAGAIN> if "
+"the system fails to allocate kernel-internal resources, rather than "
+"B<ENOMEM> as Linux does. POSIX permits this behavior. Portable programs "
+"may wish to check for B<EAGAIN> and loop, just as with B<EINTR>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Some implementations define the nonstandard constant B<INFTIM> with the "
+"value -1 for use as a I<timeout> for B<poll>(). This constant is not "
+"provided in glibc."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "C library/kernel differences"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The Linux B<ppoll>() system call modifies its I<tmo_p> argument. However, "
+"the glibc wrapper function hides this behavior by using a local variable for "
+"the timeout argument that is passed to the system call. Thus, the glibc "
+"B<ppoll>() function does not modify its I<tmo_p> argument."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The raw B<ppoll>() system call has a fifth argument, I<size_t sigsetsize>, "
+"which specifies the size in bytes of the I<sigmask> argument. The glibc "
+"B<ppoll>() wrapper function specifies this argument as a fixed value (equal "
+"to I<sizeof(kernel_sigset_t)>). See B<sigprocmask>(2) for a discussion on "
+"the differences between the kernel and the libc notion of the sigset."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<poll>()"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2008."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ppoll>()"
+msgstr ""
+
+#. FIXME .
+#. ppoll() is proposed for inclusion in POSIX:
+#. https://www.austingroupbugs.net/view.php?id=1263
+#. NetBSD 3.0 has a pollts() which is like Linux ppoll().
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "POSIX.1-2001. Linux 2.1.23."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On older kernels that lack this system call, the glibc B<poll>() wrapper "
+"function provides emulation using B<select>(2)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux 2.6.16, glibc 2.4."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The operation of B<poll>() and B<ppoll>() is not affected by the "
+"B<O_NONBLOCK> flag."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For a discussion of what may happen if a file descriptor being monitored by "
+"B<poll>() is closed in another thread, see B<select>(2)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"See the discussion of spurious readiness notifications under the BUGS "
+"section of B<select>(2)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The program below opens each of the files named in its command-line "
+"arguments and monitors the resulting file descriptors for readiness to read "
+"(B<POLLIN>). The program loops, repeatedly using B<poll>() to monitor the "
+"file descriptors, printing the number of ready file descriptors on return. "
+"For each ready file descriptor, the program:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "displays the returned I<revents> field in a human-readable form;"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"if the file descriptor is readable, reads some data from it, and displays "
+"that data on standard output; and"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"if the file descriptor was not readable, but some other event occurred "
+"(presumably B<POLLHUP>), closes the file descriptor."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Suppose we run the program in one terminal, asking it to open a FIFO:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<mkfifo myfifo>\n"
+"$ B<./poll_input myfifo>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In a second terminal window, we then open the FIFO for writing, write some "
+"data to it, and close the FIFO:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "$ B<echo aaaaabbbbbccccc E<gt> myfifo>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "In the terminal where we are running the program, we would then see:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"Opened \"myfifo\" on fd 3\n"
+"About to poll()\n"
+"Ready: 1\n"
+" fd=3; events: POLLIN POLLHUP\n"
+" read 10 bytes: aaaaabbbbb\n"
+"About to poll()\n"
+"Ready: 1\n"
+" fd=3; events: POLLIN POLLHUP\n"
+" read 6 bytes: ccccc\n"
+"\\&\n"
+"About to poll()\n"
+"Ready: 1\n"
+" fd=3; events: POLLHUP\n"
+" closing fd 3\n"
+"All file descriptors closed; bye\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "In the above output, we see that B<poll>() returned three times:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On the first return, the bits returned in the I<revents> field were "
+"B<POLLIN>, indicating that the file descriptor is readable, and B<POLLHUP>, "
+"indicating that the other end of the FIFO has been closed. The program then "
+"consumed some of the available input."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The second return from B<poll>() also indicated B<POLLIN> and B<POLLHUP>; "
+"the program then consumed the last of the available input."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On the final return, B<poll>() indicated only B<POLLHUP> on the FIFO, at "
+"which point the file descriptor was closed and the program terminated."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"/* poll_input.c\n"
+"\\&\n"
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>poll.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int ready;\n"
+" char buf[10];\n"
+" nfds_t num_open_fds, nfds;\n"
+" ssize_t s;\n"
+" struct pollfd *pfds;\n"
+"\\&\n"
+" if (argc E<lt> 2) {\n"
+" fprintf(stderr, \"Usage: %s file...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" num_open_fds = nfds = argc - 1;\n"
+" pfds = calloc(nfds, sizeof(struct pollfd));\n"
+" if (pfds == NULL)\n"
+" errExit(\"malloc\");\n"
+"\\&\n"
+" /* Open each file on command line, and add it to \\[aq]pfds\\[aq] array. */\n"
+"\\&\n"
+" for (nfds_t j = 0; j E<lt> nfds; j++) {\n"
+" pfds[j].fd = open(argv[j + 1], O_RDONLY);\n"
+" if (pfds[j].fd == -1)\n"
+" errExit(\"open\");\n"
+"\\&\n"
+" printf(\"Opened \\e\"%s\\e\" on fd %d\\en\", argv[j + 1], pfds[j].fd);\n"
+"\\&\n"
+" pfds[j].events = POLLIN;\n"
+" }\n"
+"\\&\n"
+" /* Keep calling poll() as long as at least one file descriptor is\n"
+" open. */\n"
+"\\&\n"
+" while (num_open_fds E<gt> 0) {\n"
+" printf(\"About to poll()\\en\");\n"
+" ready = poll(pfds, nfds, -1);\n"
+" if (ready == -1)\n"
+" errExit(\"poll\");\n"
+"\\&\n"
+" printf(\"Ready: %d\\en\", ready);\n"
+"\\&\n"
+" /* Deal with array returned by poll(). */\n"
+"\\&\n"
+" for (nfds_t j = 0; j E<lt> nfds; j++) {\n"
+" if (pfds[j].revents != 0) {\n"
+" printf(\" fd=%d; events: %s%s%s\\en\", pfds[j].fd,\n"
+" (pfds[j].revents & POLLIN) ? \"POLLIN \" : \"\",\n"
+" (pfds[j].revents & POLLHUP) ? \"POLLHUP \" : \"\",\n"
+" (pfds[j].revents & POLLERR) ? \"POLLERR \" : \"\");\n"
+"\\&\n"
+" if (pfds[j].revents & POLLIN) {\n"
+" s = read(pfds[j].fd, buf, sizeof(buf));\n"
+" if (s == -1)\n"
+" errExit(\"read\");\n"
+" printf(\" read %zd bytes: %.*s\\en\",\n"
+" s, (int) s, buf);\n"
+" } else { /* POLLERR | POLLHUP */\n"
+" printf(\" closing fd %d\\en\", pfds[j].fd);\n"
+" if (close(pfds[j].fd) == -1)\n"
+" errExit(\"close\");\n"
+" num_open_fds--;\n"
+" }\n"
+" }\n"
+" }\n"
+" }\n"
+"\\&\n"
+" printf(\"All file descriptors closed; bye\\en\");\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<restart_syscall>(2), B<select>(2), B<select_tut>(2), B<timespec>(3), "
+"B<epoll>(7), B<time>(7)"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"sigset_t origmask;\n"
+"int timeout;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"timeout = (tmo_p == NULL) ? -1 :\n"
+" (tmo_p-E<gt>tv_sec * 1000 + tmo_p-E<gt>tv_nsec / 1000000);\n"
+"pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
+"ready = poll(&fds, nfds, timeout);\n"
+"pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"The B<poll>() system call was introduced in Linux 2.1.23. On older kernels "
+"that lack this system call, the glibc B<poll>() wrapper function provides "
+"emulation using B<select>(2)."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"The B<ppoll>() system call was added in Linux 2.6.16. The B<ppoll>() "
+"library call was added in glibc 2.4."
+msgstr ""
+
+#. FIXME .
+#. ppoll() is proposed for inclusion in POSIX:
+#. https://www.austingroupbugs.net/view.php?id=1263
+#. NetBSD 3.0 has a pollts() which is like Linux ppoll().
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"B<poll>() conforms to POSIX.1-2001 and POSIX.1-2008. B<ppoll>() is Linux-"
+"specific."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"Opened \"myfifo\" on fd 3\n"
+"About to poll()\n"
+"Ready: 1\n"
+" fd=3; events: POLLIN POLLHUP\n"
+" read 10 bytes: aaaaabbbbb\n"
+"About to poll()\n"
+"Ready: 1\n"
+" fd=3; events: POLLIN POLLHUP\n"
+" read 6 bytes: ccccc\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"About to poll()\n"
+"Ready: 1\n"
+" fd=3; events: POLLHUP\n"
+" closing fd 3\n"
+"All file descriptors closed; bye\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* poll_input.c\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" Licensed under GNU General Public License v2 or later.\n"
+"*/\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>poll.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int ready;\n"
+" char buf[10];\n"
+" nfds_t num_open_fds, nfds;\n"
+" ssize_t s;\n"
+" struct pollfd *pfds;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc E<lt> 2) {\n"
+" fprintf(stderr, \"Usage: %s file...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" num_open_fds = nfds = argc - 1;\n"
+" pfds = calloc(nfds, sizeof(struct pollfd));\n"
+" if (pfds == NULL)\n"
+" errExit(\"malloc\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Open each file on command line, and add it to \\[aq]pfds\\[aq] array. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (nfds_t j = 0; j E<lt> nfds; j++) {\n"
+" pfds[j].fd = open(argv[j + 1], O_RDONLY);\n"
+" if (pfds[j].fd == -1)\n"
+" errExit(\"open\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"Opened \\e\"%s\\e\" on fd %d\\en\", argv[j + 1], pfds[j].fd);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" pfds[j].events = POLLIN;\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Keep calling poll() as long as at least one file descriptor is\n"
+" open. */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" while (num_open_fds E<gt> 0) {\n"
+" printf(\"About to poll()\\en\");\n"
+" ready = poll(pfds, nfds, -1);\n"
+" if (ready == -1)\n"
+" errExit(\"poll\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"Ready: %d\\en\", ready);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Deal with array returned by poll(). */\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" for (nfds_t j = 0; j E<lt> nfds; j++) {\n"
+" if (pfds[j].revents != 0) {\n"
+" printf(\" fd=%d; events: %s%s%s\\en\", pfds[j].fd,\n"
+" (pfds[j].revents & POLLIN) ? \"POLLIN \" : \"\",\n"
+" (pfds[j].revents & POLLHUP) ? \"POLLHUP \" : \"\",\n"
+" (pfds[j].revents & POLLERR) ? \"POLLERR \" : \"\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (pfds[j].revents & POLLIN) {\n"
+" s = read(pfds[j].fd, buf, sizeof(buf));\n"
+" if (s == -1)\n"
+" errExit(\"read\");\n"
+" printf(\" read %zd bytes: %.*s\\en\",\n"
+" s, (int) s, buf);\n"
+" } else { /* POLLERR | POLLHUP */\n"
+" printf(\" closing fd %d\\en\", pfds[j].fd);\n"
+" if (close(pfds[j].fd) == -1)\n"
+" errExit(\"close\");\n"
+" num_open_fds--;\n"
+" }\n"
+" }\n"
+" }\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" printf(\"All file descriptors closed; bye\\en\");\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-08"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""