92

我正在玩mkstemp(),它提供了一个文件描述符,但我想通过fprintf(). 有没有一种简单的方法可以将提供的文件描述符mkstemp()转换FILE *为适合与 一起使用的结构fprintf()

4

3 回答 3

113

使用fdopen()

FILE* fp = fdopen(fd, "w");
于 2009-12-21T17:31:42.850 回答
29

FILE* f = fdopen(d, "w");

人 fdopen 输出:

概要

#include <stdio.h>

FILE *
fdopen(int fildes, const char *mode);

fdopen()函数将流与现有文件描述符相关联fildes。流的模式必须与文件描述符的模式兼容。当流通过 关闭时fclose(3)fildes也关闭。

于 2009-12-21T17:32:15.767 回答
-9

没有标准的方法来做到这一点(或相反),因为 C 标准对文件描述符没有什么可说的。您的特定平台可能会也可能不会提供这种机制。

于 2009-12-21T17:32:35.173 回答