38 lines
651 B
C++
38 lines
651 B
C++
|
|
#include <stdio.h>
|
||
|
|
#include <stdlib.h>
|
||
|
|
#include <string.h>
|
||
|
|
#include <assert.h>
|
||
|
|
|
||
|
|
int binnary_diff(const char* file1, const char* file2)
|
||
|
|
{
|
||
|
|
FILE* fp1 = fopen(file1, "rb");
|
||
|
|
FILE* fp2 = fopen(file2, "rb");
|
||
|
|
|
||
|
|
char packet1[4 * 1024];
|
||
|
|
char packet2[4 * 1024];
|
||
|
|
for(int i = 0; 1; i++)
|
||
|
|
{
|
||
|
|
int r1 = fread(packet1, 1, sizeof(packet1), fp1);
|
||
|
|
int r2 = fread(packet2, 1, sizeof(packet2), fp2);
|
||
|
|
int r = r1 < r2 ? r1 : r2;
|
||
|
|
if (r < 1)
|
||
|
|
break; // eof
|
||
|
|
|
||
|
|
if (0 != memcmp(packet1, packet2, r))
|
||
|
|
{
|
||
|
|
for (int j = 0; j < r; j++)
|
||
|
|
{
|
||
|
|
if (packet1[j] != packet2[j])
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if(r1 != r2)
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
fclose(fp1);
|
||
|
|
fclose(fp2);
|
||
|
|
return 0;
|
||
|
|
}
|