Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ select(2) — SunOS 0.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

accept(2)

connect(2)

read(2)

write(2)

recv(2)

send(2)

SELECT(2)  —  System Interface Manual — System Calls

NAME

select − synchronous i/o multiplexing

SYNOPSIS

#include <time.h>

nfds = select(nfds, readfds, writefds, execptfds, timeout)
int nfds, ∗readfds, ∗writefds, ∗execptfds;
struct timeval ∗timeout;

DESCRIPTION

Select examines the i/o descriptors specified by the bit masks readfds, writefds, and execptfds to see if they are ready for reading, writing, or have an exceptional condition pending, respectively.  File descriptor f is represented by the bit “1<<f” in the mask.  Select returns, in place, a mask of those descriptors which are ready.  The total number of ready descriptors is returned in nfds.

If timeout is a non-zero pointer, it specifies a maximum interval to wait for the selection to complete.  If timeout is a zero pointer, the select blocks indefinitely.  To affect a poll, the timeout argument should be non-zero, pointing to a zero valued timeval structure. 

Any of readfds, writefds, and execptfds may be given as 0 if no descriptors are of interest. 

RETURN VALUE

Select returns the number of descriptors which are contained in the bit masks, or −1 if an error occurred.  If the time limit expires then Iselect returns 0. 

ERRORS

An error return from select indicates:

[EBADF] One of the bit masks specified an invalid descriptor. 

[EINTR] An signal was delivered before any of the selected for events occured or the time limit expired. 

SEE ALSO

accept(2), connect(2), read(2), write(2), recv(2), send(2)

Sun System Release 0.3  —  23 March 1983

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026