POLL(2) | System Calls Manual | POLL(2) |
poll, pollts
—
#include <poll.h>
int
poll
(struct
pollfd *fds, nfds_t
nfds, int
timeout);
#include <poll.h>
#include <signal.h>
#include <time.h>
int
pollts
(struct
pollfd * restrict fds,
nfds_t nfds,
const struct timespec *
restrict ts, const
sigset_t * restrict sigmask);
poll
() and pollts
() examine a
set of file descriptors to see if some of them are ready for I/O. The
fds argument is a pointer to an array of pollfd
structures as defined in
<poll.h>
(shown below). The
nfds argument determines the size of the
fds array.
struct pollfd { int fd; /* file descriptor */ short events; /* events to look for */ short revents; /* events returned */ };
The fields of struct pollfd are as follows:
The event bitmasks in events and revents have the following bits:
poll
() returns a POLLIN
event, rather than a POLLHUP.If timeout is neither zero nor INFTIM (-1),
it specifies a maximum interval to wait for any file descriptor to become
ready, in milliseconds. If timeout is INFTIM (-1), the
poll blocks indefinitely. If timeout is zero, then
poll
() will return without blocking.
If ts is a non-null pointer, it references a
timespec structure which specifies a maximum interval to wait for any file
descriptor to become ready. If ts is a null pointer,
pollts
() blocks indefinitely. If
ts is a non-null pointer, referencing a zero-valued
timespec structure, then pollts
() will return
without blocking.
If sigmask is a non-null pointer, then the
pollts
() function shall replace the signal mask of
the caller by the set of signals pointed to by sigmask
before examining the descriptors, and shall restore the signal mask of the
caller before returning.
poll
() returns the number of descriptors that are ready
for I/O, or -1 if an error occurred. If the time limit expires,
poll
() returns 0. If poll
()
returns with an error, including one due to an interrupted call, the
fds array will be unmodified.
poll
() to return with an
error. In cases where this would have happened in the historical
implementation (e.g. trying to poll a
revoke(2)d descriptor), this
implementation instead copies the events bitmask to the
revents bitmask. Attempting to perform I/O on this
descriptor will then return an error. This behaviour is believed to be more
useful.
poll
() indicates:
EFAULT
]EINTR
]EINVAL
]poll
() function appeared in
AT&T System V Release 3 UNIX. The
pollts
() function first appeared in
NetBSD 3.0.
May 5, 2019 | NetBSD 9.0 |