[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#8961: stdbuf has no effect on some programs

From: Pádraig Brady
Subject: bug#8961: stdbuf has no effect on some programs
Date: Mon, 04 Jul 2011 10:08:06 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20100227 Thunderbird/3.0.3

On 03/07/11 23:38, Pádraig Brady wrote:
> On 03/07/11 18:50, Bruno Haible wrote:
>> I wrote:
>>> Likewise for "-o0".
>> Oops, please forget the statement about -o0. With the modified GNU libiconv
>> 'iconv' program, -o0 does make a difference:
>>   $ (echo -n abc; sleep 1; echo def) | iconv
>> vs.
>>   $ (echo -n abc; sleep 1; echo def) | stdbuf -o0 iconv
>> In the first case, output is line buffered. In the second case, "abc"
>> occurs immediately.
>> Bruno
> Also "-i0" is useful if a command doesn't consume all of input,
> and needs a subsequent command to process the rest, like:
> producer | (stdbuf -i0 cmd1; cmd2)
> I'll expand the info to make this function apparent.

Hmm, this especially useful with sed, where one
can [Qq]uit early depending on the input.

But I notice that sed no longer supports `setbuf -i0`.
This is because of 3a8e165a which discards the
original stdin and instead fdopens() a new one
to support reading in binary mode on windos.

Note in sed 4.2.2 the -u option was enhanced to
support this internally (the documentation had already
said that -u did this), so only sed 4.2 and 4.2.1
have no way to control this.

In any case there is no point I think opening
a new stream for stdin on non windos platforms
as it adds a bit of overhead, and precludes the
use of setbuf -i...

So how about the attached patch?


Attachment: sed-i0.diff
Description: Text Data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]