web-dev-qa-db-ja.com

ファイル記述子からFILEポインターを取得する方法は?

ファイル記述子を提供するmkstemp()で遊んでいますが、fprintf()を介してフォーマットされた出力を生成したいです。 mkstemp()で提供されるファイル記述子をfprintf()での使用に適したFILE *構造に変換する簡単な方法はありますか?

75
BD at Rivenhill

fdopen() を使用します。

FILE* fp = fdopen(fd, "w");
92

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

man fdopenの出力:

あらすじ

_#include <stdio.h>

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

fdopen()関数は、ストリームを既存のファイル記述子fildesに関連付けます。ストリームのモードは、ファイル記述子のモードと互換性がなければなりません。 fclose(3)を介してストリームが閉じられると、fildesも閉じられます。

26
Gregory Pakosz