我正在使用 C 中的二进制文件,我无法解决一件事 - 为什么文件以此字节00001010
结尾(等于10 )?
我的代码实质上是以下(简化)。
FILE *test = fopen("file.b", "ab");
int value = 1;
fwrite(&value, sizeof(int), 1, test);
fclose(test);
运行程序后,file.b
看起来像这样(在vim :%!xxd -b
的帮助下)。
00000001 00000000 00000000 00000000 00001010
尾随字节的发生与我选择写入的类型无关。
答案 0 :(得分:1)
10是换行符。当你通过xxd过滤它时,vim会自动附加换行符(如果文件没有以换行符结尾)。
由于您将其视为二进制文件,因此您应该告诉vim它是一个vim -b
的二进制文件,因此新行不会自动添加。
查看:h binary