恐惧是如何工作的

How does fread work?

本文关键字:工作 何工作 恐惧      更新时间:2023-10-16

我知道在各种编程语言中,例如MatLab和C++,fread被用作读取二进制文件的一种方式。我想知道这究竟是如何工作的?特别是,fread 如何知道有一个新数字正在从二进制文件中读入;是否有某种分隔符?

标准的 C 库函数fread尝试从文件中读取一定数量的"对象",并返回它能够成功读取的数量。它是系统调用read(也是标准 C 库的一部分(的包装器,它尝试从文件中读取一定数量的字节,并返回它能够成功读取的字节数。系统调用由操作系统实现,特别是由文件系统实现。

虽然确切的实现细节可能很复杂(由于缓冲区的存在,例如(,但本质上这真的很简单:文件系统知道文件有多长,并将其当前偏移量(位置(存储在文件中(这实际上是文件描述符的一部分,其中一些可以引用同一个文件(。