Re: bsdgrep does not work with tail -f | grep combination

From: Sean C. Farley <scf_at_FreeBSD.org>
Date: Wed, 4 Aug 2010 12:49:32 -0500 (CDT)
On Tue, 3 Aug 2010, Gabor Kovesdan wrote:

> Em 2010.08.03. 19:25, poyopoyo_at_puripuri.plala.or.jp escreveu:
>> Hi,
>> 
>> It seems bsdgrep does not work when piped from tail -f.
>> I'm running r210728.
>> 
>> term0$ jot 10>  /tmp/1
>> term0$ tail -f /tmp/1 | grep 0
>> [no output]
>> 
>> otherterm$ jot 10>>  /tmp/1
>> [no output to term0]
>> 
>> =====
>> 
>> with GNU grep:
>> 
>> term0$ tail -f /tmp/1 | gnugrep 0
>> 10
>> otherterm$ jot 10>>  /tmp/1
>> [on term0]
>> 10
>> 10
>> 
> I've checked on 8.0 and GNU grep doesn't output anything either for me. If 
> you use tail -f, you will enter more lines and end it with EOF, won't you? 
> And then BSD grep will process the input and print out matches. I don't think 
> it's bad behaviour in itself but if you can explain why you think it's bad 
> I'm willing to change it.

On 8.1, GNU grep (from system) and FreeGrep (personal repo with my 
fastcomp changes) both output the '10' from this test.  Are you sure you 
ran GNU grep on that system and did not accidentally run a copy of BSD 
grep?

With bsdgrep in HEAD, I think it is not processing the input until 
stdio's buffer is flushed at the 8KB mark.  I barely looked at the code, 
so I am merely surmising.

Sean
-- 
scf_at_FreeBSD.org
Received on Wed Aug 04 2010 - 15:49:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:05 UTC