[issue22443] read(1) blocks on unflushed output

STINNER Victor report at bugs.python.org
Fri Sep 19 16:10:59 CEST 2014


STINNER Victor added the comment:

> On reading the output of an application (for example "apt-get download firefox") that dynamically changes a line (possibly with the terminal control character \r) I have noticed that read(1) does not read the output until it has finished with a newline.

The buffering of stdout and/or stderr of your application probably changes if the application runs in a terminal (TTY) or if the output is redirected to a pipe (not a TTY). Set the setvbuf() function.

You can try my hack to disable buffering using LD_PRELOAD:
https://bitbucket.org/haypo/misc/src/4d133ea3e46550808305b093557ee51d2de2ac9f/misc/nobuffer.c?at=default

----------
nosy: +haypo

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22443>
_______________________________________


More information about the Python-bugs-list mailing list