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.