快速记录一下实现方式
#include <stdio.h>
#include <stdlib.h>
void compare_file(char *file1, char *file2){
FILE *src, *dst;
int error = 0, pos = 0, line = 1;
src = fopen(file1, "rb");
dst = fopen(file2, "rb");
if (src != NULL && dst != NULL) {
size_t s_size, d_size;
unsigned char s_buff[1024], d_buff[1024];
int pos = 0;
do {
s_size = fread(s_buff, 1, sizeof(s_buff), src);
d_size = fread(d_buff, 1, sizeof(d_buff), dst);
if (s_size != d_size) {
error = 1;
break;
}
for(pos = 0; pos < s_size; pos++) {
if (s_buff[pos] != d_buff[pos]) {
error = 1;
break;
}
}
} while((s_size > 0 && d_size > 0));
}
fclose(src);
fclose(dst);
if (error != 0) {
char cmd[32] = {0x00};
printf("file %s - %s differs!\n\n", file1, file2);
printf("file %s\n", file1);
snprintf(cmd, 255, "hexdump -C %s", file1);
system(cmd);
printf("file %s\n", file2);
snprintf(cmd, 255, "hexdump -C %s", file2);
system(cmd);
} else {
printf("file %s - %s are same.\n", file1, file2);
}
}