WriteFileを繰り返すと4GBの所でおかしな動きをする

解決


かりゆし  2009-12-02 01:47:59  No: 71158

XP(NTFS)+VC2008で確認しています。
128KBの領域を32K回繰り返し書き込むとサイズが0に成ってしまいます。

DWORD      tDwordAry[32*1024];
tFH = CreateFile( "c:\\tttt.dat", 引数端折り );
iMax = 32 * 1024;
for ( i = 0; i < iMax; i++ ) {
   wCnt = sizeof ( tDwordAry );
   WriteFile( tFH, tDwordAry, wCnt, &wSiz, NULL );
}
CloseHandle( tFH );
↑のプログラムはかなり簡略化していますが、
実行するとサイズが0になってしまいます。
途中まで4GB近くまでサイズが大きくなっていますが、、
終わると0に成ってしまいます。
なぜでしょうか?


かりゆし  2009-12-02 02:28:42  No: 71159

お騒がせしました。

単純に使っているファイラーが4GB以上のサイズに対応していないだけでした。

エクスプローラで見るとちゃんと4GBありました。


かりゆし  2009-12-02 02:29:22  No: 71160

解決をセットし忘れました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加