Date: Thu, 5 Apr 2012 07:00:14 GMT From: Jeremie Le Hen <jeremie@le-hen.org> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/154915: [libc] [patch] Force stdio output streams to line-buffered mode Message-ID: <201204050700.q3570EPF093791@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/154915; it has been noted by GNATS.
From: Jeremie Le Hen <jeremie@le-hen.org>
To: Oliver Fromme <olli@lurza.secnetix.de>
Cc: bug-followup@FreeBSD.org, jeremie@le-hen.org
Subject: Re: kern/154915: [libc] [patch] Force stdio output streams to
line-buffered mode
Date: Thu, 5 Apr 2012 08:55:00 +0200
Hi Oliver,
I'm top-posting to let you handle this mail quickly.
Can you please close this PR. The content is messy, the subject is
misleading and I don't think these points will help the patch to be
committed. I will open a new PR with the new patch that doesn't modify
libc.
Thanks.
Regards,
On Thu, Feb 16, 2012 at 02:49:50PM +0100, Oliver Fromme wrote:
> I think introducing an environment variable for this purpose
> is a bad hack. I would advise against this.
>
> Many tools already have options for unbuffered or line-buffered
> output (for example cat -u), and there are also other ways to
> circumvent such problems.
>
> For example, the problem quoted in the PR can be solved like this,
> using the -u option of cat:
>
> $ iostat -x 1 | cat -un | grep ad1
>
> or avoiding cat completely (also might be more efficient,
> saving one process and one pipe, though I haven't benchmarked
> this):
>
> $ iostat -x 1 | awk '{n+=1} /ad1/{print n, $0}'
>
> For certain other cases, I have the following alias in my ~/.zshrc
> that simulates a TTY environment for a tool so it is forced to
> use line-buffered output:
>
> alias intty='script -qt0 /dev/null'
>
> So I can write:
>
> $ intty sometool -args | grep ...
>
> However, the intty alias only works when it is the first command
> in a pipeline (this is a limitation of the "script" command).
> In the above example, the cat command is not the first, but a
> subshell can be used to work around this:
>
> $ intty sh -c 'iostat -x 1 | cat -n' | grep ad1
>
> (It should work with any shell that supports aliases, not just
> zsh, of course.)
>
> I suggest closing this PR.
>
> Best regards
> Oliver
--
Jeremie Le Hen
Men are born free and equal. Later on, they're on their own.
Jean Yanne
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204050700.q3570EPF093791>
