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");

man 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 に答える