In order to open a file using its file descriptor (fd), you must use the
fdopen
function. This function behaves as fopen
,
but instead of opening a file using its name or path,
it uses the file descriptor:
#include <stdio.h> int fdopen(int fildes, const char *mode);
A way to get a file descriptor is with mkstemp
:
#include <stdio.h> int mkstemp(char *template);
This function generates a unique temporary file name from template
string. The last six characters of template
must be
"XXXXXX"
and these are replaced with a string that
makes the filename unique. The file is then created for reading or writing.
Since the string will be modified, template
must not be a
string constant, but should be declared as a character array. The
mkstemp
function returns the file descriptor of the
temporary file or -1
on error.