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

解決


かりゆし  2009-12-01 16:47:59  No: 71158  IP: 192.*.*.*

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-01 17:28:42  No: 71159  IP: 192.*.*.*

お騒がせしました。

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

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

編集 削除
かりゆし  2009-12-01 17:29:22  No: 71160  IP: 192.*.*.*

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

編集 削除