我有一个Windows系统缓存的问题。 示例代码:Windows系统缓存和巨大的文件
int main(int argc, char* argv[])
{
HANDLE file_ = INVALID_HANDLE_VALUE;
file_ = CreateFile(
"test_file.txt",
GENERIC_WRITE,
FILE_SHARE_READ,
0,
OPEN_ALWAYS,
FILE_FLAG_SEQUENTIAL_SCAN,
NULL
);
if (file_ == INVALID_HANDLE_VALUE || file_ == NULL)
{
std::cout << "CreateFile error " << GetLastError() << std::endl;
return GetLastError();
}
int counter = 0;
DWORD io_bytes = 0;
while(true)
{
char buffer[0x1000];
int len = _snprintf_s(buffer, 0x1000, 0xffff, "test message %d\r\n", counter);
counter++;
if (!WriteFile(file_, buffer, len, &io_bytes, NULL))
{
std::cout << "WriteFile error " << GetLastError() << std::endl;
return GetLastError();
}
if (counter > 10000000)
{
system("pause");
return 0;
}
}
}
,如果你运行这段代码,看看系统缓存的大小,都将是好的。但是,如果您在该程序运行时打开该文件(test_file.txt)供某些查看器阅读(例如用于总指挥官的列表插件),则即使您已关闭查看器,系统缓存大小也会增加程序。这看起来像内存泄漏。这种行为是否正常?