我想知道如何计算操作系统上的文件大小?
我最好的猜测是操作系统以某种方式跟踪文件列表以及它们占用的所有相关磁盘块,并简单地将(磁盘块计数 * 块大小)相乘,但这不会给出确切的文件大小,因为可能存在块中未使用的空间,然后我想它可以循环遍历最后一个块的所有字节,直到找到一个空终止字符。
我想这取决于操作系统,但我只是想了解整体情况,否则我正在寻找与 unix 相关的答案:)
我想知道如何计算操作系统上的文件大小?
我最好的猜测是操作系统以某种方式跟踪文件列表以及它们占用的所有相关磁盘块,并简单地将(磁盘块计数 * 块大小)相乘,但这不会给出确切的文件大小,因为可能存在块中未使用的空间,然后我想它可以循环遍历最后一个块的所有字节,直到找到一个空终止字符。
我想这取决于操作系统,但我只是想了解整体情况,否则我正在寻找与 unix 相关的答案:)
在 Linux 和其他类 Unix 操作系统上,inode存储有关文件的所有信息,但文件名和数据内容除外。创建文件时,会为其分配一个名称和一个 inode 编号,这是一个在文件系统中唯一的整数。
inode 结构包括文件模式(确定权限和文件类型)、所有者 ID、组 ID、系统和用户标志、大小、时间戳(创建/访问/修改时间)、链接计数、设备 ID(为了识别包含文件的设备),以及指向存储文件实际内容的磁盘块的指针。