You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

确认statvfs获取的物理块大小与/sys文件中数值是否一致

确认statvfs获取的块大小与sysfs文件值的一致性

你的代码中buf.f_bsize获取到的值,和/sys/block/sdc/queue/physical_block_size里的物理块大小是完全一致的,原因如下:

  • statvfs()的f_bsize字段返回的是文件系统所在存储设备的最优I/O块大小,这个值直接取自内核识别到的设备物理块参数,和sysfs中physical_block_size的数据源完全相同。
  • 由于/tmp挂载在/dev/sdc上,调用statvfs("/tmp/", &buf)时,内核会关联到/dev/sdc的硬件块大小配置,因此返回的结果必然和/sys/block/sdc/queue/physical_block_size的数值匹配。

补充验证方式:你也可以通过stat命令查看设备文件的块大小,执行stat -c %o /dev/sdc,输出结果同样会是4096,和另外两个值保持一致。

你的代码示例:

#include <stdio.h>
#include <string.h>
#include <sys/statvfs.h>

int main() {
    struct statvfs buf;
    memset(&buf, 0, sizeof(buf));
    const int res = statvfs("/tmp/", &buf);

    printf("%lu\n", buf.f_bsize);
}

内容的提问来源于stack exchange,提问作者Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:40:56