In article <co**********@news2.rz.uni-karlsruhe.de>,
Uwe Mayer <me*****@hadiko.de> wrote:
Hi,
I use select() to wait for a file object (stdin) to become readable. In that
situation I wanted to read everything available from stdin and return to
the select statement to wait for more.
However, the file object's read method blocks if the number of bytes is 0 or
negative.
Is there no way to read everything a channel's got currently got without
blocking?
Yes, there is a way - os.read() (also known as posix.read())
It's better not to mix buffered I/O (like file object
I/O functions) with select() at all, because select()
actually applies to system level file descriptors and
doesn't know anything about the buffer.
Get the file descriptor with fileno(), and never refer
to the file object again after that.
Donn Cave,
do**@u.washington.edu