On Wed, May 08 2019, Paul Eggert wrote: > Florian Weimer wrote: >>> 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". >> Hah, thanks for this suggestion! So something good came out of this >> thread after all. The big advantage of this approach is that this will >> preserve the descriptor and the stream, so that further diagnostics from >> the process are not suppressed. > > That trick won't work if the dup fails. > > Also, I worry that the trick won't port to non-Linux kernels, so it would > have > to be '#ifdef __linux__' or something like that.
Are there any non-Linux kernels ??? Seriously though, I suspect it would work on any Unix-like kernel. It certainly doesn't hurt, so there is no need to protect it with the #ifdef. NeilBrown
signature.asc
Description: PGP signature