DragonFly BSD
DragonFly submit List (threaded) for 2004-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [repost] Patch to make cpdup's stdout unbuffered


From: "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx>
Date: Wed, 9 Jun 2004 00:38:36 +0200

On 09.06.2004, at 00:19, Chris Pressey wrote:

The installer popen()'s "cpdup -vvv src dest" and it reads from this
pipe to monitor cpdup's progress.  Unfortunately, since cpdup's
output is fully buffered, cpdup's progress can't be usefully
measured this way.
Now, we could add a flag for every single program to write unbuffered
(linebuffered) output. Or we could do some (non-POSIX?) magic in libc
to get most of this just fixed by doing a env
LIBC_STDOUT_BUFFERING=line $program or whatever...
The man pages make it sound a bit like this is already possible, but I
can't figure out how to do it.
So by the sounds of it, the attached program should be able to run
another program, forcing that other program's stdout to be unbufferred.
But in (a small amount of) testing, I couldn't seem to get that
behaviour.

The buffering is done in the FILE* functions in libc, not on STDOUT_FILENO in the kernel.


This is why we need to tell *libc* not to buffer; this has nothing to do with the fd as I understand it.

cheers
  simon

--
/"\
\ /
 \     ASCII Ribbon Campaign
/ \  Against HTML Mail and News

Attachment: PGP.sig
Description: This is a digitally signed message part



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