シーク後に書き込むデータがあることを保証できる場合は、ファイルの先頭にバイトを予約するのに、fseek
を使用しても安全ですか?例:fseekで安全なスペースを予約していますか?
// reserve space
fseek(f, 4096, SEEK_SET);
// ...
// write some data after the reserved space
fwrite(buf, 1, bufsize, f);
// go back to the reserved space (to update it)
rewind(f);
// ...
Windowsで動作することがわかりましたが、他のプラットフォームはどうですか?そこには何か見逃しがありますか?
それは、 Unix上の領域を予約しません。あなたが出力を書き出してフラッシュするまで、実際にファイルに何も起こりません。 – Barmar