在运行时,我经常需要读取较大文件 (300 mb) 的一小部分。 目前我总是打开文件,从中读取然后再次关闭它:
FILE *file =fopen(szFileName,"rb");
if (file)
{
fseek( file,iFirstByteToRead, SEEK_SET);
fread(nEncodedBytes,sizeof(unsigned char), iLenCompressedBytes, file);
fclose(file);
}
但这太慢了,因为我经常这样做。 另外我不确定 fread 是否可以加速。
请问这种情况的最佳做法是什么?
最佳答案
保持文件打开,你会做得更好。
尝试使用 mmap
来提高性能。
关于C++ 快速读取较大文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15738605/