如何从文件描述符中获取FILE指针?

时间:2009-12-21 17:30:04

标签: c posix mkstemp

我正在玩mkstemp(),它提供了文件描述符,但我想通过fprintf()生成格式化输出。有没有一种简单的方法可以将mkstemp()提供的文件描述符转换为适合FILE *使用的fprintf()结构?

3 个答案:

答案 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标准对文件描述符没什么好说的。您的特定平台可能会也可能不会提供这样的机制。