関数を呼び出して一時ファイル名を取得し、それを使用して書き込み用のファイルを作成することで、C++ プログラムで一時ファイルを作成しようとしてtmpfnam
いますが、コードで一時ファイルを作成できません。ただし、からの一時的な名前を使用する代わりに、ユーザー指定のファイル名または文字列定数を使用すると、ファイルの作成はまったく問題なく機能しtmpfnam
ます。例を次に示します。
std::tmpnam(fname); //does not work
std::fstream f(fname,std::ios::out);
char* fname = "myfile.txt"; //works
std::fstream f(fname,std::ios::out);
ケース2のファイルがソースファイルと同じディレクトリに作成されていることを確認しましたが、ケース1では作成されていません。管理者権限でプログラムを実行しようとしましたが、まだ運がありません. これがなぜそうなのか、何か考えはありますか?