fread是如何工作的?

时间:2015-06-29 22:24:47

标签: c++ matlab fread

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

1 个答案:

答案 0 :(得分:6)

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

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