我正在编写一个简单的程序,该程序从两个文件中读取数据并进行逐字节比较,以找出两者之间的第一个(如果有的话)差异。
这是我遇到麻烦的代码:它检查文件的长度是否不同并正确打印:
len1 = read(dumpFile, file1, 1024);
len2 = read(fumpFile, file2, 1024);
if(len1<len2){
printf("%d: EOF 0x%x\n", len1, file2[len1]);
return;
}
if(len1>len2){
printf("%d: 0x%x EOF\n", len2, file1[len2]);
return;
}
这就是问题,如果第一个条件被触发,输出就可以了: 10:EOF 0x71
奇怪的是,触发第二个会产生奇怪的输出,即使在不同的地方使用相同的文件也是如此: 10:0xfffffffe EOF
我看不出有什么办法可以解决这个问题;它应该非常简单。有什么想法吗?