我fseek(..)在一个非常大的文件中运行性能不佳.每次调用fseek函数时,我都需要向后移动文件指针位置100 bytes:
fseek(fp, -100, SEEK_CUR);
Run Code Online (Sandbox Code Playgroud)
以前,我这样做:
fseek(fp, (index)*100, SEEK_SET); // which makes basically the same...
Run Code Online (Sandbox Code Playgroud)
我的问题是fseek如何将指针移动到文件中并将文件指针设置在特定位置.
我认为它需要文件指针并将其向后移动,但现在我认为它真正起作用的是
得到当前位置(cp)
添加否定索引(p = idx + cp)
并将文件指针从文件的开头移动到该位置(fseek(fp, p, SEEK_SET))