select.2 (2010 09)

s
select(2) select(2)
NAME
select(), pselect(), FD_CLR(), FD_ISSET(), FD_SET(), FD_ZERO() - synchronous I/O multiplexing
SYNOPSIS
#include <sys/select.h>
#include <sys/time.h>
int pselect(int nfds, fd_set *__restrict readfds,
fd_set *__restrict writefds, fd_set *__restrict errorfds,
const struct timespec *__restrict timeout,
const sigset_t *__restrict sigmask);
#include <sys/time.h>
int select(int nfds, fd_set *__restrict readfds,
fd_set *__restrict writefds, fd_set *__restrict errorfds
struct timeval *__restrict timeout);
void FD_CLR(int fd, fd_set *fdset);
int FD_ISSET(int fd, fd_set *fdset);
void FD_SET(int fd, fd_set *fdset);
void FD_ZERO(fd_set *fdset);
For Backward Compatibility Only: (_XOPEN_SOURCE_EXTENDED not defined)
#include <time.h>
int select(size_t nfds, int *readfds, int *writefds,
int *exceptds, const struct timeval *timeout);
DESCRIPTION
The pselect() and select() functions indicate which of the specified file descriptors is ready for
reading, ready for writing, or has an error condition pending. If the specified condition is false for all of
the specified file descriptors, pselect() and select() block, up to the specified timeout interval,
until the specified condition is true for at least one of the specified file descriptors.
The
pselect() and select() functions support regular files, terminal and pseudo-terminal devices,
STREAMS-based files, FIFOs and pipes. The behaviour of
pselect() and select() on file descrip-
tors that refer to other file types is unspecified.
The nfds argument specifies the range of file descriptors to be tested. The
pselect() and select()
functions test file descriptors in the range of 0 to nfds 1. File descriptor f is represented by the bit 1<<f
in the masks. More formally, a file descriptor is represented by:
fds[(f / BITS_PER_INT)] & (1 << (f % BITS_PER_INT))
If the readfds argument is not a null pointer, it points to an object of type fd_set that on input specifies
the file descriptors to be checked for being ready to read, and on output indicates which file descriptors
are ready to read.
If the writefds argument is not a null pointer, it points to an object of type fd_set that on input specifies
the file descriptors to be checked for being ready to write, and on output indicates which file descriptors
are ready to write.
If the errorfds argument is not a null pointer, it points to an object of type fd_set that on input specifies
the file descriptors to be checked for error conditions pending, and on output indicates which file descrip-
tors have error conditions pending.
On successful completion, the objects pointed to by the readfds , writefds , and errorfds arguments are
modified to indicate which file descriptors are ready for reading, ready for writing, or have an error condi-
tion pending, respectively. For each file descriptor less than nfds, the corresponding bit will be set on
successful completion if it was set on input and the associated condition is true for that file descriptor.
If the timeout argument is not a null pointer, it specifies a maximum interval to wait for the selection to
complete. The timeout argument points to an object of type
struct timespec for pselect(), and to
an object of type struct timeval for select(). If the members of these structures are 0,
pselect() or select() will not block. If the timeout argument is a null pointer, pselect() or
select() will block until an event causes one of the masks to be returned with a valid (non-zero) value.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (6 pages)