bug-gnulib
[Top][All Lists]
Advanced

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

Re: Why does close_stdout close stdout and stderr?


From: NeilBrown
Subject: Re: Why does close_stdout close stdout and stderr?
Date: Wed, 08 May 2019 10:43:57 +1000

On Tue, May 07 2019, Bruno Haible wrote:

> Assaf Gordon wrote:
>> 4.
>> "fflush" instead of "fclose" seems to work OK, but I do not know
>> if there are other side effects:
>> 
>>    $ ./aa stdout fflush > /dev/full && echo ok || echo error
>>    aa: fflush failed: No space left on device
>>    error
>
> Except that it does not work OK on NFS, as explained by the comment
> in close-stream.c (written in 2006):
>
>                        Even calling fflush is not always sufficient,
>    since some file systems (NFS and CODA) buffer written/flushed data
>    until an actual close call.

You can achieve that "actual close call" using

  error = close(dup(fileno(stdout)));

so you don't actually need to "fclose" if you don't want to.
Any 'close' will do, it doesn't have to be the "last close".

NeilBrown

Attachment: signature.asc
Description: PGP signature


reply via email to

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