我必须做一个程序(对于 Linux),其中有一个非常大的索引文件,我必须搜索和解释文件中的数据。现在要注意的是,我只能在任何时候缓存文件的 x 字节(由参数确定),因此如果不是我要查找的数据,我必须从缓存中删除某些数据。
如果我的理解是正确的, fopen (r) 不会将任何内容放入缓存中,只有当我调用 getc 或 fread(指定大小) 时它才会被缓存。
所以我的问题是,假设我使用 fread 并读取 100 个字节,但在检查后,100 个字节中只有 20 个包含我需要的数据;我将如何从缓存中删除无用的 80 字节(或覆盖它)以便从文件中读取更多内容。
编辑通过缓存我的意思是存储在内存中的数据,这使得问题更容易