私のCプログラムで一時ファイルを作成し、それにデータを書き込んだり、外部コマンド(execまたはシステム経由)を呼び出して、今作成したファイルに対して何らかの処理を行う必要があります。私は外部コマンドを書いていないし、それを自分のプログラムに統合することもできないので、既に開いているディスクリプタを共有できるとは思えない。したがって、私は作成された一時ファイルの名前を知る必要があります。一時ファイルを開き、そのファイル名を取得するにはどうすればよいですか?
tempname()関数はこれを行いますが、残念なことに名前を取得してファイルを開くまでに競合が発生する可能性があり、推奨されない関数(tmpfileとmkstemp )は、作成されたファイルの実際の名前を見つける方法を提供します。
'mkstemp'は名前を返します。渡されたテンプレート引数(char *、const char *ではなく)を変更して、Xを実際の値に置き換えます。 – Joe