tags:

views:

412

answers:

1

We can get a file descriptor from a FILE* stream by using the fileno function. Is there a function for getting a FILE* stream from the file descriptor without reopening the file?

+12  A: 
   FILE *fdopen(int fd, const char *mode);

See fdopen(3), but it should be on the same page as fopen(3)

   The fdopen() function  associates  a  stream  with  the  existing  file
   descriptor,  fd.   The mode of the stream (one of the values "r", "r+",
   "w", "w+", "a", "a+") must be compatible with  the  mode  of  the  file
   descriptor.   The  file  position indicator of the new stream is set to
   that belonging to fd, and the  error  and  end-of-file  indicators  are
   cleared.   Modes  "w" or "w+" do not cause truncation of the file.  The
   file descriptor is not dup’ed, and will be closed when the stream  cre‐
   ated  by  fdopen()  is  closed.   The  result of applying fdopen() to a
   shared memory object is undefined.
DigitalRoss