By using fdopen()
, fileno()
it's possible to open streams with existing file descriptors. However the proper way to close a file, once you've opened it with a stream is to fclose()
the FILE
pointer. How can one close the stream, but retain the open file descriptor?
This behaviour is akin to calling fflush()
and then fileno()
, and then never using the FILE
pointer again, except in closing. An additional concern is that if you then fdopen()
again, there are now multiple FILE
pointers, and you can only close one of them.