さて、mkstemp
POSIXで一時ファイルを作成するための推奨される方法です。
ただし、ファイルを開き、int
ファイル記述子である を返します。それから、私は FILE* のみを作成できますがstd::ofstream
、C++ で好まれる は作成できません。(明らかに、AIX やその他のシステムではstd::ofstream
、ファイル記述子から を作成できますが、それを試みるとコンパイラがエラーを出します。)
一時ファイル名を取得しtmpnam
、それを使用して独自の ofstream を開くことができることはわかっていますが、競合状態のために明らかに安全ではなく、コンパイラの警告が表示されます (Linux では g++ v3.4):
warning: the use of `tmpnam' is dangerous, better use `mkstemp'
それで、std::ofstream
一時ファイルに作成する移植可能な方法はありますか?