Как получить указатель файла из дескриптора файла?
Я играю с 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закрыт также.