读取和比较C中的两个二进制文件的更快方法

时间:2018-09-27 03:31:55

标签: c

我编写了一个程序,该程序读取两个二进制文件以进行比较,并打印找到第一个差异的偏移量,以及从文件开始差异的那一点开始的文件的前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);

}
}

0 个答案:

没有答案