ファイルを空にしたいのですが、2つの方法があります:
1) dwCreationDisposition = TRUNCATE_EXISTING で CreateFile 関数を使用する!
2) ファイルを開き、SetFilePointerEx でファイル ポインタをファイルの先頭に設定し、SetEndOfFile を呼び出します。
違いはありますか?どちらを使用すればよいですか?
本質的に、これらは両方とも同じことを達成し、パフォーマンスの大きな違いを判断できるようにするには、ファイルを何度も「空にする」必要があります。ファイルが大きい場合は、使用されなくなったブロックをファイルから解放します。とにかく割り当てが主な時間になります。
もちろん、より移植性の高いコードが必要な場合は、 を使用してofstream of("myfile.ext");
これを実現することもできますFILE *f = fopen("myfile.ext", "w");
(同じテーマのいくつかのバリエーションと共に)。
一般に、これらのバリアント間にほとんど違いはありません。ほとんどの場合、現在作業しているコードにとって最も意味のあるものです。言い換えれば、「空になったファイルで次に何をするつもりか」と、そのために必要な「ハンドル」の種類です。