私の質問に関連する投稿を見たことがありますが、完全に対処しているものはありません。標準の一時ディレクトリにファイルを作成し、書き込みが完了したら別の場所に移動する必要があります。ファイルは、ダウンロード中は一時的であり、ダウンロードが完了した後は永続的であると見なされるという考え方です。
mkstempまたはtmpfileを呼び出してこれを試みており、書き込みが完了したら名前を変更します。ただし、rename を呼び出すにはファイルのフル パスが必要であり、明らかにファイル記述子 (mkstemp によって返される) または FILE * (tmpfile によって返される) からファイル名を取得することは簡単なプロセスではありません。それはできますが、エレガントではありません。
一時ファイルを作成して名前を提供するシステム コールはありますか? mktempおよび関連する呼び出しについては知っていますが、一意であることが保証されていないか、非推奨です。または、一時ファイルの作成、書き込み、および移動を行うためのより良い方法があるかもしれません。