我正在调试一个 fuse 文件系统,它报告了错误的du
. 事实证明,它正在将st_size / st_blksize
[*] 放入结构中st_blocks
。stat
Linux手册页stat(2)
说:
struct stat {
…
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
…
};
st_blksize
无论如何,如果在 512B 块中是什么意思st_blocks
?
[*] 无论如何看起来都是错误的,因为整数除法不考虑小数部分......