如何从文件描述符获取FILE指针?
我正在玩mkstemp(),它提供了一个文件描述符,但我想通过fprintf()生成格式化的输出。 是否有一种简单的方法将mkstemp()提供的文件描述符转换为适合fprintf()使用的FILE *结构?
使用fdopen()
:
FILE* fp = fdopen(fd, "w");
FILE* f = fdopen(d, "w");
男人fdopen输出:
概要
#include <stdio.h> FILE * fdopen(int fildes, const char *mode);
fdopen()
函数将一个stream与现有的文件描述符fildes
关联起来。 stream的模式必须与文件描述符的模式兼容。 当stream通过fclose(3)
closures时,fildes
也被closures。
没有标准的方法来做这个(或者相反),因为C标准对文件描述符没有什么可说的。 您的具体平台可能会或可能不会提供这样的机制。