如何从文件描述符获取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标准对文件描述符没有什么可说的。 您的具体平台可能会或可能不会提供这样的机制。