NAME
poll.h —
definitions for the poll() function
SYNOPSIS
#include
<poll.h>
DESCRIPTION
The <poll.h> header shall define the pollfd structure, which shall include at least the following members:
int fd The following descriptor being polled. short events The input event flags (see below). short revents The output event flags (see below).
The <poll.h> header shall define the following type through typedef:
- nfds_t
- An unsigned integer type used for the number of file descriptors.
The implementation shall support one or more programming environments in which the width of nfds_t is no greater than the width of type long. The names of these programming environments can be obtained using the confstr(3) function or the getconf(1) utility.
The <poll.h> header shall define the sigset_t type as described in <signal.h>.
The <poll.h> header shall define the timespec structure as described in <time.h>.
The <poll.h> header shall define the following symbolic constants, zero or more of which may be OR'ed together to form the events or revents members in the pollfd structure:
- POLLIN
- Data other than high-priority data may be read without blocking.
- POLLRDNORM
- Normal data may be read without blocking.
- POLLRDBAND
- Priority data may be read without blocking.
- POLLPRI
- High priority data may be read without blocking.
- POLLOUT
- Normal data may be written without blocking.
- POLLWRNORM
- Equivalent to POLLOUT.
- POLLWRBAND
- Priority data may be written.
- POLLERR
- An error has occurred ( revents only).
- POLLHUP
- Device has been disconnected ( revents only).
- POLLNVAL
- Invalid fd member ( revents only).
The significance and semantics of normal, priority, and high-priority data are file and device-specific.
The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.
int poll(struct pollfd [], nfds_t, int);
int ppoll(struct pollfd [], nfds_t, const struct timespec *restrict,
const sigset_t *restrict);
Inclusion of the <poll.h> header may make visible all symbols from the headers <signal.h> and <time.h>.
APPLICATION USAGE
None.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
XSH confstr(3), poll(3)
XCU getconf(1)
CHANGE HISTORY
First released in Issue 4, Version 2.
Issue 6
The description of the symbolic constants is updated to match the poll(3) function.
Text related to STREAMS has been moved to the poll(3) reference page.
A note is added to the DESCRIPTION regarding the significance and semantics of normal, priority, and high-priority data.
Issue 7
The <poll.h> header is moved from the XSI option to the Base.
Issue 8
Austin Group Defect 1263 is applied, adding ppoll(3), requiring <poll.h> to define sigset_t and struct timespec, and allowing <poll.h> to make visible all symbols from <signal.h> and <time.h>.