How can I know how much to read from a subprocess

A.T.Hofkamp hat at
Wed Sep 19 14:18:30 CEST 2007

On 2007-09-18, spam.noam at <spam.noam at> wrote:
> On Sep 18, 1:48 pm, "A.T.Hofkamp" <h... at> wrote:
>> On 2007-09-17, spam.n... at <spam.n... at> wrote:
>> > It seems that another solution is gobject.io_add_watch, but I don't
>> > see how it tells me how much I can read from the file - if I don't
>> > know that, I won't know the argument to give to the read() method in
>> > order to get all the data:
>> >
>> Usually, gobject only tells you that data is there (that is all it knows).
>> Therefore a read(1) should be safe.
> But even if it's fast enough, how do you know how many times you
> should call read(1)? If you do it too much, you'll be blocked until
> more output is available.

after reading 1 byte, wait for gobject again.

In other words, when gobject sends a notice, read 1 byte.
When there is more, gobject will tell you (probably very often :-) ).

>> If that is too slow, consider which reads all data available (afaik,
>> never tried it myself).
> I tried it now, and it blocks just like the normal

So ", 1000000)" blocks after gobject tells you there is data?
That is different than I heard, but you are probably correct, I cannot easily test this.


More information about the Python-list mailing list