したがって、ファイルへの最大 1000 のパスを受け取るプログラムがあり、特定の 3 バイトを読み取って日付を返すというアイデアはすべて問題ありません。
問題は開始時に始まり、メモリ使用量が最大に向かって飛び、数秒以内にPCがフリーズします。
オープニングプロセスで数メガか何かを使い果たしていると思います...この大量のメモリを使用せずに必要なものを達成する方法についてのアイデアはありますか?
注:15 GBのラインに沿って何かとして開いているファイル
int main(int argc, char *argv[])
{
string paths[1000] = {};
int date[3] = {0};
cout << "Arg count: " << argc << endl;
if (argc <= 1)
paths[0] = "PRIV.EDB";
else
for(int i = 1;i<argc;i++){
paths[i-1] = argv[i];
}
cout << "Start\n\n";
for (int i=0;i<1000;i++)
{
if (paths[i].empty())
break;
cout << paths[i] << endl;
ifstream pFile;
pFile.open(paths[i], ios::binary);
pFile.seekg(195);
date[0] = pFile.get();
date[1] = pFile.get();
date[2] = pFile.get();
cout << date[0] << " : " << date[1] << " : " << date[2] << " \n";
cout << endl;
pFile.clear();
pFile.close();
}
cout << "Fin\n";
if (argc <= 1)
getchar();
return date[0];
}