この機能を使用して作成された一時ファイルを使用するプログラムがありますmkstemps
。これらのファイルは/tmp
ディレクトリ内に作成されます。
プログラムが終了すると、これらのファイルは自動的に削除されますか?
私のプログラムが終了する前にこれらのファイルを削除する必要があるかどうかを知りたいです。自動的に削除されない場合は削除せずに保存できますか/tmp
?それとも、プログラムが終了する前に使用または削除する方がunlink
良い方法ですか?remove
ベストアンサー1
次のいずれかによって生成されたファイルmkstemp
関数系列プログラム終了時に自動的に削除されません。内容に合わせて保存することを選択できます/tmp
。これは通常定期的にクリーンアップされますが、これはやや恥ずかしいことです。
この問題をきれいに処理する2つの主な方法があります。
- 別のプロセスで一時ファイルを開く必要がない場合、またはファイル記述子を渡してそれを処理できる場合は、返すとすぐに
mkstemps
ファイルを削除できます。ファイルは存在しますが、表示されなくなります。ディレクトリのリスト。ファイル記述子が見つかるとclose
削除されます。 atexit
それ以外の場合は、ファイルを削除するためのシャットダウン機能を登録してください。