我正在玩mkstemp()
,它提供了文件描述符,但我想通过fprintf()
生成格式化输出。有没有一种简单的方法可以将mkstemp()
提供的文件描述符转换为适合FILE *
使用的fprintf()
结构?
答案 0 :(得分:91)
使用fdopen()
:
FILE* fp = fdopen(fd, "w");
答案 1 :(得分:26)
FILE* f = fdopen(d, "w");
man fdopen输出:
概要
#include <stdio.h>
FILE *
fdopen(int fildes, const char *mode);
fdopen()
函数将流与现有文件描述符fildes
相关联。流的模式必须与文件描述符的模式兼容。通过fclose(3)
关闭流后,fildes
也会关闭。
答案 2 :(得分:-8)
没有标准的方法可以做到这一点(或相反),因为C标准对文件描述符没什么好说的。您的特定平台可能会也可能不会提供这样的机制。