file-io - 操作系统如何计算文件大小?

标签 file-io operating-system

如果我理解正确的话,大多数提供库函数来检索文件大小的编程语言都使用系统调用。但是,系统在幕后做了什么?它取决于文件系统吗?大小信息是否存储在某种文件头中?

最佳答案

是的,这取决于文件系统,但许多文件系统以大致相同的方式执行此操作:对于每个文件,硬盘驱动器上都有一个 block ,用于存储有关文件的元数据,包括其大小。

例如,对于 Linux/UNIX 中使用的许多文件系统,此 block 称为 inode 。请注意, inode 实际上并不是文件的一部分,因此它并不是真正的 header ;它存在于光盘上保留用于存储元数据而不是文件数据的区域中。

关于NTFS ,Windows使用的文件系统,文件大小数据存储在主文件表中。这大致相当于 Linux 文件系统上的 inode 表。

关于file-io - 操作系统如何计算文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845046/

相关文章:

c++ - 分部分读取文件,在最后读取的部分之后继续

c# - Windows 电话 8 : Media file access

file-io - Go - 尝试创建一个 .pgm 文件但最终得到一个二进制文件

c - 使用信号处理程序从函数返回

operating-system - 如何避免 Belady 异常?

linux - 操作系统内核是守护进程吗?

python - 如何使用 numpy 保存和读回多维字符串数组(可能)?

ruby - 确定 Ruby 中的最后一行

java - 当Java Web服务部署在运行同一应用服务器的不同操作系统上时,同一消息的不同数字签名

c++ - shared_ptr如何在main结束时释放内存?