我正在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
尾随字节的发生与我选择写入的类型无关。
最佳答案
10是换行符。通过xxd过滤时,vim会自动添加换行符(如果文件未以换行符结尾)。
由于您将其视为二进制文件,因此应告诉vim它是带有vim -b
的二进制文件,因此不会自动添加换行符。
看看:h binary
关于c - 执行fwrite()之后的最后一个字节是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23458364/