fread() 和 fwrite 在 c 编程中的工作原理



我正在使用c语言处理数据库平面文件项目。我创建了一个成员很少的结构。我正在使用 fwrite() 将它们写入二进制文件和 fread() 来获取数据。我的两个主要问题

第一,我们可以在文本文件中写入结构吗?我没有看到好的例子。以文本格式编写它实际上是错误的吗?当我使用"w"而不是"wb"写作时,我得到了文本格式,但有一些额外的单词。

2nd 这些 fread() 和 fwrite 如何工作()。它们对一个数据块进行操作,如何获得下一个块的地址。我的意思是我们确实有指针,但文件没有任何地址,那么指针如何转到下一个块?

第一,我们可以在文本文件中写入结构吗? 我没有看到好的例子 .当我写的时候,用文本格式写它实际上是错误的吗 使用"W"而不是"WB",我得到了文本格式,但有一些额外的 的话

想象一下,你的结构里面包含一些整数。现在,如果您使用 fwrite 编写它们,这些整数将以二进制格式写入文件。如果您尝试将其解释为文本,这将不起作用,文本编辑器将尝试将二进制值解释为字符 - 这很可能不会按预期工作。

例如,如果你的结构包含整数 3,当使用 fwrite 编写时,它将被存储为

00000000 0000000 0000000 00000011 (3 in binary)

假设大端符号。现在,如果您尝试使用文本编辑器阅读上述内容,当然不会获得所需的效果。

没有说编译器可能插入到结构中的填充字节。

2nd 这些 fread() 和 fwrite 如何工作()。它们在 数据他们如何获得下一个块的地址。我的意思是我们确实有 指针但文件没有任何地址,所以指针如何转到下一个 块?

这很可能是使用操作系统处理的。

附言。我建议您阅读更多有关序列化的信息,并尝试了解文本和二进制文件之间的区别。

相关内容

  • 没有找到相关文章

最新更新