在C中加载二进制文件时,我得到了意想不到的结果.
FILE *bin = NULL;
unsigned long file_length = 0;
bin = fopen("vs.bin", "rb");
fseek(bin, 0, SEEK_END);
file_length = ftell(bin);
fseek(bin, 0, SEEK_SET);
char *buffer = (char *)malloc(file_length);
fread(buffer, 1, file_length, bin);
for(unsigned int i = 0; i < file_length; i++) {
printf("%02x ", buffer[i]);
}
printf("\n");
Run Code Online (Sandbox Code Playgroud)
我在前八个输出值中看到的是:
56 53 48 05 ffffffa4 ffffff8b ffffffef 49
Run Code Online (Sandbox Code Playgroud)
但是当我在十六进制编辑器中打开二进制文件时,我看到的是:
56 53 48 05 A4 8B EF 49
Run Code Online (Sandbox Code Playgroud)
什么会导致这种情况发生?整个过程中发生了更多这种情况,但我认为只分享第一部分就足以说明问题了.
谢谢阅读.
c ×1