*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: select | Section: 2 | Source: Digital UNIX | File: select.2.gz
select(2) System Calls Manual select(2) NAME select - Synchronous I/O multiplexing SYNOPSIS #include <sys/time.h> int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *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); STANDARDS Interfaces documented on this reference page conform to industry stan- dards as follows: select(): XPG4-UNIX Refer to the standards(5) reference page for more information about in- dustry standards and associated tags. PARAMETERS Specifies the number of open objects that may be ready for reading or writing or that have exceptions pending. The nfds parameter cannot be greater than FD_SETSIZE. Points to an I/O descriptor set consisting of file descriptors of objects opened for reading. When the readfds para- meter is a null pointer, the read I/O descriptor set is ignored by the select() function. Points to an I/O descriptor set consisting of file descriptors for objects opened for writing. When the writefds parameter is a null pointer, the write I/O descriptor set is ignored. Points to an I/O descriptor set consisting of file descriptors for objects opened for reading or writing that have an exception pending. When the ex- ceptfds parameter is a null pointer, the exception I/O descriptor set is ignored. Points to a type timeval structure that specifies the time to wait for a response to a select() function. When the timeout parame- ter has a nonzero value, the maximum time interval to wait for the se- lect() function to complete is specified by values stored in space re- served by the type timeval structure pointed to by the timeout parame- ter. When the timeout parameter is a null pointer, the select() func- tion blocks indefinitely. To poll, the timeout parameter should be specified as a nonzero value and point to a zero-valued timeval struc- ture. Specifies a file descriptor. Points to an I/O descriptor set. DESCRIPTION The select() function checks the status of objects identified by bit masks called I/O descriptor sets. Each I/O descriptor set consists of an array of bits whose relative position and state represent a file de- scriptor and the status of its corresponding object. There is an I/O descriptor set for reading, writing, and for pending exceptions. These I/O descriptor sets are pointed to by the readfds, writefds, and ex- ceptfds parameters, respectively. The I/O descriptor sets provide a means of monitoring the read, write, and exception status of objects represented by file descriptors. The status of nfds-1 file descriptors in each referenced I/O descriptor set is checked when the select() function is called. The select() function returns a modified I/O descriptor set, which has the following characteristics: for any selected I/O descriptor set pointed to by the readfds, writefds, and exceptfds parameters, if the state of any bit corresponding with an active file descriptor is set on entry, when the object represented by the set bit is ready for reading, writing, or its exception condition has been satisfied, a corresponding bit position is also set in the returned I/O descriptor set pointed to by the readfds, writefds, or exceptfds parameters. On return, the select() function replaces the original I/O descriptor sets with the corresponding I/O descriptor sets that have a set bit for each file descriptor representing those objects that are ready for the requested operation. The total number of ready objects represented by set bits in all the I/O descriptor sets is returned by the select() function. [Digital] Objects ready for the requested operation are those which the operation would not block and not necessarily those which have data available for the operation. After an I/O descriptor set is created, it may be modified with the following macros: Clears the I/O descriptor bit specified by file de- scriptor fd in the I/O descriptor set addressed by fdset. Returns a nonzero value when the I/O descriptor bit for fd is included in the I/O descriptor set addressed by fdset. Otherwise 0 (zero) is returned. Includes the particular I/O descriptor bit specified by fd in the I/O descriptor set addressed by fdset. Initializes the I/O descriptor set addressed by fdset to a null value. The behavior of these macros is undefined when parameter fd has a value less than 0 (zero) or greater than or equal to FD_SETSIZE, which is normally at least equal to the maximum number of file descriptors sup- ported by the system. NOTES This function supports up to 64K open file descriptors per process if that capability is enabled. If not already defined, FD_SETSIZE is set in the <sys/select.h> header file to be 4K. New applications can use any of these features for processes using more than 4K open file descriptors. When they do so, however, they must specify an alternate value for FD_SETSIZE--one that does not exceed 64K--before they include <sys/select.h> in a program to be compiled. RETURN VALUES Upon successful completion, the select() function returns the number of ready objects represented by corresponding file descriptor bits in the I/O descriptor sets. When an error occurs, -1 is returned and errno is set to indicate the error. If the time limit expires before any event occurs that would cause one of the masks to be set to a non-zero value, select() completes success- fully and returns 0 (zero). When select() returns an error, including a process interrupt, the I/O descriptor sets pointed to by the readfds, writefds, and exceptfds pa- rameters remain unmodified. ERRORS The select() function sets errno to the specified values for the fol- lowing conditions: One or more of the I/O descriptor sets specified an invalid file de- scriptor. A signal was delivered before the time limit specified by the timeout parameter expired and before any of the selected events oc- curred. The time limit specified by the timeout parameter is invalid. The nfds parameter is less than 0, or greater than or equal to FD_SETSIZE. One of the specified file descriptors refers to a STREAM or mul- tiplexer that is linked (directly or indirectly) downstream from a multiplexer. [Digital] Allocation of internal data struc- tures failed. A later call to the select() function may com- plete successfully. RELATED INFORMATION Functions: accept(2), connect(2), send(2), getdtablesize(2), poll(2) read(2), recv(2), setsysinfo(2), write(2) Standards: standards(5) delim off select(2)

Navigation Options