如何在Solaris / Unix上获取文件系统的inode计数?

时间:2010-12-03 20:04:47

标签: c unix solaris inode

我正在调用以下命令并阅读outpup df -F ufs -o i。它最初工作正常但后来由于报告的原因而开始失败并在此处解释http://wesunsolve.net/bugid/id/6795242

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

非常感谢示例/示例。

2 个答案:

答案 0 :(得分:3)

statvfs系统调用可用于检索文件系统统计信息,包括总索引节点数和空闲索引节点数。使用系统调用检索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;
...

答案 1 :(得分:1)

您想要的是statvfs - 请参阅man page on the Solaris web site