Как получить указатель файла из дескриптора файла?
Я играю с mkstemp (), который предоставляет дескриптор файла, но я хочу генерировать форматированный вывод через fprintf (). Есть ли простой способ преобразовать файловый дескриптор, предоставленный mkstemp () в структуру FILE*, которая подходит для использования с fprintf ()?
3 ответа:
использовать
fdopen()
:FILE* fp = fdopen(fd, "w");
FILE* f = fdopen(d, "w");
man fdopen выход:
справка
#include <stdio.h> FILE * fdopen(int fildes, const char *mode);
The
fdopen()
функция связывает поток с существующим файловым дескрипторомfildes
. Режим потока должен быть совместим с режимом файлового дескриптора. Когда поток закрыт черезfclose(3)
,fildes
закрыт также.