gpt4 book ai didi

c - `fwrite()` 后的最后一个字节是什么意思?

转载 作者:行者123 更新时间:2023-11-30 15:34:03 26 4
gpt4 key购买 nike

我正在使用 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 -b 告诉 vim 它是一个二进制文件,这样换行符就不会自动添加。

看一下 :h 二进制文件

关于c - `fwrite()` 后的最后一个字节是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com