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

Clé*_*ent 3 file-io operating-system

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

Dav*_*d Z 6

是的,这是依赖于文件系统的,但是许多文件系统以大致相同的方式执行:对于每个文件,硬盘驱动器上存在一个块,用于存储有关文件的元数据,包括其大小.

例如,对于Linux/UNIX中使用的许多文件系统,此块称为inode.请注意,inode实际上不是文件的一部分,所以它实际上不是标题; 它存在于盘的一个区域中,该区域被保留用于存储元数据,而不是文件数据.

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