1995-03-17 16:07:09 +00:00
|
|
|
\section{Built-in Module \sectcode{select}}
|
1997-07-17 16:34:52 +00:00
|
|
|
\label{module-select}
|
1994-01-02 01:22:07 +00:00
|
|
|
\bimodindex{select}
|
|
|
|
|
|
|
|
This module provides access to the function \code{select} available in
|
|
|
|
most \UNIX{} versions. It defines the following:
|
|
|
|
|
1998-02-13 06:58:54 +00:00
|
|
|
\setindexsubitem{(in module select)}
|
1994-01-02 01:22:07 +00:00
|
|
|
\begin{excdesc}{error}
|
|
|
|
The exception raised when an error occurs. The accompanying value is
|
|
|
|
a pair containing the numeric error code from \code{errno} and the
|
|
|
|
corresponding string, as would be printed by the C function
|
|
|
|
\code{perror()}.
|
|
|
|
\end{excdesc}
|
|
|
|
|
1998-03-17 06:33:25 +00:00
|
|
|
\begin{funcdesc}{select}{iwtd, owtd, ewtd\optional{, timeout}}
|
1994-01-02 01:22:07 +00:00
|
|
|
This is a straightforward interface to the \UNIX{} \code{select()}
|
|
|
|
system call. The first three arguments are lists of `waitable
|
|
|
|
objects': either integers representing \UNIX{} file descriptors or
|
|
|
|
objects with a parameterless method named \code{fileno()} returning
|
|
|
|
such an integer. The three lists of waitable objects are for input,
|
|
|
|
output and `exceptional conditions', respectively. Empty lists are
|
1995-04-04 12:29:37 +00:00
|
|
|
allowed. The optional \var{timeout} argument specifies a time-out as a
|
1994-01-02 01:22:07 +00:00
|
|
|
floating point number in seconds. When the \var{timeout} argument
|
|
|
|
is omitted the function blocks until at least one file descriptor is
|
|
|
|
ready. A time-out value of zero specifies a poll and never blocks.
|
|
|
|
|
|
|
|
The return value is a triple of lists of objects that are ready:
|
|
|
|
subsets of the first three arguments. When the time-out is reached
|
|
|
|
without a file descriptor becoming ready, three empty lists are
|
|
|
|
returned.
|
|
|
|
|
|
|
|
Amongst the acceptable object types in the lists are Python file
|
|
|
|
objects (e.g. \code{sys.stdin}, or objects returned by \code{open()}
|
|
|
|
or \code{posix.popen()}), socket objects returned by
|
|
|
|
\code{socket.socket()}, and the module \code{stdwin} which happens to
|
|
|
|
define a function \code{fileno()} for just this purpose. You may
|
|
|
|
also define a \dfn{wrapper} class yourself, as long as it has an
|
|
|
|
appropriate \code{fileno()} method (that really returns a \UNIX{} file
|
|
|
|
descriptor, not just a random integer).
|
|
|
|
\end{funcdesc}
|
|
|
|
\ttindex{socket}
|
|
|
|
\ttindex{stdwin}
|