du 命令显示的结果与 st_blocks 不同

du 命令显示的结果与 st_blocks 不同

我正在用 C 实现,并为此du -a使用该函数。stat问题是,我从使用中得到的结果st_blocks是我使用命令本身时得到的结果的 2 倍,这有什么意义吗?或者我做错了什么?

答案1

stat计算 中的 512 字节块st_blocks,而du默认情况下计算 1024 字节的块(在大多数 Linux 发行版中)——因此从stat.

(POSIXdu也计算 512 字节块;du如果您设置了,GNU就会遵循该标准POSIXLY_CORRECT。)

相关内容