从以下文档stat():
在某些Unix系统(例如Linux)上,还可以使用以下属性:
- st_blocks - 为文件分配的512字节块数
- st_blksize - filesystem blocksize
- st_rdev - 如果是inode设备的设备类型
- st_flags - 用户定义的文件标志
你似乎想要的是st_blocks * st_blksize.请注意,这不是文件的实际大小,即文件的st_size成员.块数乘以块大小将大于实际文件大小.
注意:当它显示" st_blocks - 为文件分配的512字节块的数量"时,该数字512实际上取决于系统.POSIX规范说
在POSIX.1-2008中未定义stat结构的st_blocks成员的单位.在一些实现中,它是512字节.它可能因文件系统而异.
如果该st_block属性可用,那么如果它是其他值,请不要感到惊讶.