我有一个比较两个文件的功能,看它们是否相同.它逐字节读取文件并检查它们是否相同.
我现在遇到的问题是,对于大文件,这个功能需要相当长的时间.
检查文件是否相同的更好,更快的方法是什么?
当你的文件不一样时,它们的大小可能相同吗?如果没有,你可以立即确定文件大小(fseek到最后,ftell来确定位置),如果它们不同,那么你知道它们在不比较数据的情况下是不一样的.如果尺寸相同,请记得回到开头.
如果将文件读入大内存缓冲区并使用memcmp()比较每个缓冲区,则可以提高性能.您不必一次读取整个文件,只需设置一个大的缓冲区大小并从每个文件读取该大小的块,用于循环中的每个比较迭代.memcpy函数将以32位值运行,而不是8位字节.