【发布时间】:2011-05-19 23:07:50
【问题描述】:
我正在调用以下命令并读取输出df -F ufs -o i。它最初工作得很好,但后来开始失败,原因在这里报告和解释http://wesunsolve.net/bugid/id/6795242。
虽然上面链接中建议的解决方案可能有效,但它很难看,我想要一个永久的解决方案。所以,真的在 Solaris/Unix 上寻找 c api,它会给我给定文件系统的 inode 总数和可用数量。
非常感谢示例/示例。
【问题讨论】:
我正在调用以下命令并读取输出df -F ufs -o i。它最初工作得很好,但后来开始失败,原因在这里报告和解释http://wesunsolve.net/bugid/id/6795242。
虽然上面链接中建议的解决方案可能有效,但它很难看,我想要一个永久的解决方案。所以,真的在 Solaris/Unix 上寻找 c api,它会给我给定文件系统的 inode 总数和可用数量。
非常感谢示例/示例。
【问题讨论】:
statvfs 系统调用可用于检索文件系统统计信息,包括总 inode 数量和空闲 inode 数量。使用系统调用检索statvfs 结构,然后检查f_files 和f_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;
...
【讨论】:
你想要的是statvfs——见man page on the Solaris web site。
【讨论】: