select man page on OPENSTEP

Man page or keyword search:  
man Server   1419 pages
apropos Keyword Search (all sections)
Output format
OPENSTEP logo
[printable version]


SELECT(2)							     SELECT(2)

NAME
       select - synchronous I/O multiplexing

SYNOPSIS
       #include <sys/types.h>
       #include <sys/time.h>

       nfound = select(nfds, readfds, writefds, exceptfds, timeout)
       int nfound, nfds;
       fd_set *readfds, *writefds, *exceptfds;
       struct timeval *timeout;

       FD_SET(fd, &fdset)
       FD_CLR(fd, &fdset)
       FD_ISSET(fd, &fdset)
       FD_ZERO(&fdset)
       int fd;
       fd_set fdset;

DESCRIPTION
       Select  examines	 the I/O descriptor sets whose addresses are passed in
       readfds, writefds, and exceptfds to see if some	of  their  descriptors
       are  ready  for	reading, are ready for writing, or have an exceptional
       condition  pending,  respectively.   The	 first	nfds  descriptors  are
       checked	in each set; i.e. the descriptors from 0 through nfds-1 in the
       descriptor sets are examined.  On return,  select  replaces  the	 given
       descriptor  sets	 with subsets consisting of those descriptors that are
       ready  for  the	requested  operation.	The  total  number  of	 ready
       descriptors in all the sets is returned in nfound.

       The  descriptor	sets  are  stored as bit fields in arrays of integers.
       The following macros are	 provided  for	manipulating  such  descriptor
       sets:  FD_ZERO(&fdset)  initializes  a descriptor set fdset to the null
       set.  FD_SET(fd, &fdset) includes a particular descriptor fd in	fdset.
       FD_CLR(fd,  &fdset)  removes  fd	 from  fdset.  FD_ISSET(fd, &fdset) is
       nonzero if fd is a member of fdset, zero otherwise.   The  behavior  of
       these  macros  is  undefined if a descriptor value is less than zero or
       greater than or equal to FD_SETSIZE, which is normally at  least	 equal
       to the maximum number of descriptors supported by the system.

       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  effect a poll, the timeout argument
       should be non-zero, pointing to a zero-valued timeval structure.

       Any of readfds, writefds, and exceptfds may be given as	zero  pointers
       if no descriptors are of interest.

RETURN VALUE
       Select  returns	the  number of ready descriptors that are contained in
       the descriptor sets, or -1 if an error occurred.	  If  the  time	 limit
       expires	then  select  returns  0.   If	select	returns with an error,
       including one due to an interrupted call, the descriptor sets  will  be
       unmodified.

ERRORS
       An error return from select indicates:

       [EBADF]	      One   of	 the  descriptor  sets	specified  an  invalid
		      descriptor.

       [EINTR]	      A signal was delivered before the time limit expired and
		      before any of the selected events occurred.

       [EINVAL]	      The  specified  time  limit  is  invalid.	  One  of  its
		      components is negative or too large.

SEE ALSO
       accept(2),   connect(2),	  read(2),   write(2),	  recv(2),    send(2),
       getdtablesize(2)

BUGS
       Although	 the  provision of getdtablesize(2) was intended to allow user
       programs to be written independent of the kernel limit on the number of
       open  files, the dimension of a sufficiently large bit field for select
       remains a problem.  The default	size  FD_SETSIZE  (currently  256)  is
       somewhat	 larger	 than  the  current kernel limit to the number of open
       files.	However,  in  order  to	 accommodate  programs	 which	 might
       potentially  use	 a  larger  number  of	open  files with select, it is
       possible to increase this size within a program by providing  a	larger
       definition of FD_SETSIZE before the inclusion of <sys/types.h>.

       Select  should  probably	 return	 the  time remaining from the original
       timeout, if any, by modifying the time value in	place.	 This  may  be
       implemented  in	future	versions of the system.	 Thus, it is unwise to
       assume that the timeout value will be unmodified by the select call.

4.2 Berkeley Distribution	 May 15, 1986			     SELECT(2)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server OPENSTEP

List of man pages available for OPENSTEP

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net