我编写了一个程序,该程序读取两个二进制文件以进行比较,并打印找到第一个差异的偏移量,以及从文件开始差异的那一点开始的文件的前16个字节。我也在比较比较它们所花费的时间。我的时间大约是70毫秒。有没有更快的方法呢?说不到5毫秒?
这是比较二进制文件的代码:
我在函数调用之前和之后放置了开始时间和结束时间
void compare_two_binary_files(FILE *fp1, FILE *fp2)
{
char ch1, ch2;
int flag = 0;
int count = 0;
while (((ch1 = fgetc(fp1)) != EOF) &&((ch2 = fgetc(fp2)) != EOF))
{
if(ch1 != ch2)
{
fseek(fp1, -1, SEEK_CUR);
fseek(fp2, -1, SEEK_CUR);
flag = 1;
break;
}
count++;
}
if (flag)
{
printf("\nTwo files are not equal : byte position at which two files differ is %d\n", count+1);
for(int i=0; i < 16; i++){
printf("%x ", fgetc(fp1));
}
printf("\n");
for(int i=0; i < 16; i++){
printf("%x ", fgetc(fp2));
}
}
else
{
printf("\nTwo files are Equal\n ", ftell(fp1)+1);
}
}