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