我正在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/

10-14 13:19
查看更多