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



如果我理解正确的话,大多数提供库函数来检索文件大小的编程语言都使用系统调用。但是,这个系统在底层是做什么的呢?是否依赖于文件系统?大小信息是否存储在某种文件头中?

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

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

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

它存储在文件的元数据中,您可以在POSIX系统上使用stat检索。元数据还包括,例如,文件最后被修改或访问的时间。

它们存储在一个名为Inode的结构中:http://en.wikipedia.org/wiki/Inode

包含所有文件的元数据;当您修改文件的内容(或对其进行任何操作)时,Inode将得到更新。

最新更新