Flush stdin

Cameron Simpson cs at zip.com.au
Tue Oct 21 19:46:56 EDT 2014


On 21Oct2014 16:16, Dan Stromberg <drsalists at gmail.com> wrote:
[...snip...]
>>> This is tremendously inefficient.  It demands a context switch for
>>> every character.
>>
>> Inefficiency isn't an issue when you generate one byte a second.
>
>Of course, but who's doing one byte per second?  You and I in our
>tests, and perhaps some application developers with remarkably
>undemanding I/O.  That doesn't really mean we should _recommend_ a
>series of os.read(0, 1)'s.

Indeed not. But there is one glaring exception: the shell's read builtin.  
Because it can be interspersed in a script between other input-consuming 
commands, it _must_ read no more than one line, and therefore is has to read in 
increments of 1 character.

Of course, that says nothing about the upstream write() granularity.

I now return y'all to your regularly sheduled nit picking.

Cheers,
Cameron Simpson <cs at zip.com.au>

If it ain't broken, keep playing with it.



More information about the Python-list mailing list