因此,我有一个程序可以接收多达 1000 个文件路径,其想法是读取 3 个特定字节以返回日期,这一切都很好。
问题在它开始时就开始了,并且内存使用量飞向最大值,并因此在几秒钟内冻结了我的电脑。
我猜打开过程会消耗几兆或其他东西......关于如何在没有大量内存使用的情况下实现我需要的任何想法?
注意:我打开的文件大约为 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];
}