【问题标题】:How to get inode count of a filesystem on Solaris/Unix?如何在 Solaris/Unix 上获取文件系统的 inode 计数?
【发布时间】:2011-05-19 23:07:50
【问题描述】:

我正在调用以下命令并读取输出df -F ufs -o i。它最初工作得很好,但后来开始失败,原因在这里报告和解释http://wesunsolve.net/bugid/id/6795242

虽然上面链接中建议的解决方案可能有效,但它很难看,我想要一个永久的解决方案。所以,真的在 Solaris/Unix 上寻找 c api,它会给我给定文件系统的 inode 总数和可用数量。

非常感谢示例/示例。

【问题讨论】:

    标签: c unix solaris inode


    【解决方案1】:

    statvfs 系统调用可用于检索文件系统统计信息,包括总 inode 数量和空闲 inode 数量。使用系统调用检索statvfs 结构,然后检查f_filesf_ffree 字段,分别确定inode 数量和空闲inode 数量。

    例子:

    #include <statvfs.h>
    
    struct statvfs buffer;
    int            status;
    fsfilcnt_t     total_inodes;
    fsfilcnt_t     free_inodes;
    ...
    status = statvfs("/home/betaylor/file_in_filesystem", &buffer);
    
    total_inodes = buffer.f_files;
    free_inodes  = buffer.f_ffree;
    ...
    

    【讨论】:

    • 非常感谢您花时间回答并写一个例子:)
    【解决方案2】:

    你想要的是statvfs——见man page on the Solaris web site

    【讨论】:

      猜你喜欢
      • 2018-07-03
      • 2016-06-26
      • 2020-06-12
      • 2012-09-01
      • 2011-07-24
      • 2013-06-23
      • 1970-01-01
      • 2020-01-19
      • 2014-06-12
      相关资源
      最近更新 更多