Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用statvfs结构计算自由空间的最佳方法?_Linux_Filesystems_Linux Kernel - Fatal编程技术网

Linux 使用statvfs结构计算自由空间的最佳方法?

Linux 使用statvfs结构计算自由空间的最佳方法?,linux,filesystems,linux-kernel,Linux,Filesystems,Linux Kernel,我们是否必须使用 f_bfree×f_frsize 或 f_bfree×f_bsize 计算文件系统中的可用磁盘空间 struct statvfs { unsigned long f_bsize; /* file system block size */ unsigned long f_frsize; /* fragment size */ fsblkcnt_t f_blocks; /* size of fs in f_frsize units

我们是否必须使用

  • f_bfree×f_frsize 或
  • f_bfree×f_bsize
  • 计算文件系统中的可用磁盘空间

    struct statvfs {
        unsigned long  f_bsize;    /* file system block size */
        unsigned long  f_frsize;   /* fragment size */
        fsblkcnt_t     f_blocks;   /* size of fs in f_frsize units */
        fsblkcnt_t     f_bfree;    /* # free blocks */
        fsblkcnt_t     f_bavail;   /* # free blocks for unprivileged users */
        fsfilcnt_t     f_files;    /* # inodes */
        fsfilcnt_t     f_ffree;    /* # free inodes */
        fsfilcnt_t     f_favail;   /* # free inodes for unprivileged users */
        unsigned long  f_fsid;     /* file system ID */
        unsigned long  f_flag;     /* mount flags */
        unsigned long  f_namemax;  /* maximum filename length */
    };
    

    我认为这是选项2(f_bsize)。  f_bfree是空闲块的数量,因此您应该将其乘以块的大小。请注意,df的输出显示f_bavail*f_bsize为可用空间。