以下で確認してみましたが ・・・
コンソールアプリで作成
1) 単にファイルから読み込んで
2) 読み込み成功したら閉じてまた開き シークして次を読む
3) ファイルの末尾まで 2)へ戻って繰り返し
4) 上記 1)から3)を 1000回繰り返す
タスクマネージャでのプロセスで確認 ・・・
参考コード VC2005
#include "stdafx.h"
// stdio.h, tchar.h をインクリュード
int _tmain(int argc, _TCHAR* argv[])
{
char buf[20481];
FILE *file1;
errno_t err;
unsigned _int64 nPos = 0L;
unsigned _int64 readcnt = 0L;
for( int n = 0; n < 1000; n ++ ) {
printf( "%d\n", n );
err = fopen_s( &file1, "Gallery.zip", "rb" );
if ( err != 0 ) {
printf( "FileOpen Error\n" );
return 1;
}
memset( buf, 0, sizeof( buf ) );
readcnt = fread( buf, 1, sizeof( buf ), file1 );
nPos = readcnt;
while( !feof( file1 ) ) {
fclose( file1 );
if ( 0 == fopen_s( &file1, "Gallery.zip", "rb" ) ) {
memset( buf, 0, sizeof( buf ) );
_fseeki64( file1, nPos, SEEK_SET );
fread( buf, 1, sizeof( buf ), file1 );
nPos += readcnt;
} else {
return 2;
}
}
fclose( file1 );
}
return 0;
}
お礼
コードまで記載していただいてありがとうございます。 上記コードを確認の後、自コードと見比べてみることにします。