Win32API質問箱 Build47
■ このスレッドは過去ログ倉庫に格納されています
0644642
2006/12/04(月) 00:07:29すみません
セクタサイズではなくクラスタサイズでした
MSDNには、FILE_FLAG_NO_BUFFERINGフラグを指定した場合
書き込み&読み込みサイズと、バッファーのアドレスと、ファイルの書き込み&読み込み開始位置が
ディスクのクラスタサイズと一致してなければいけないと書いてありました。
そのため、クラスタサイズが4KBのディスクに1001KBのファイルを作ろうとすると
最後の1KBが書き込めなくなってしまうので
1、FILE_FLAG_NO_BUFFERINGを諦める
(このフラグを指定すると非同期書き込みのパフォーマンスが上がると書いてあったので、できれば諦めたくない)
2、一度ファイルを開き直してから書き込む
(わざわざ開き直すのは面倒でスマートではない気がするので、他にいい方法があるなら避けたい)
この二つ以外に方法は無いのかと思って質問させていただきました
■ このスレッドは過去ログ倉庫に格納されています