2010-12-03 76 views
2

我正在調用以下命令並閱讀outpup df -F ufs -o i。它最初運行良好,但後來開始失敗的原因報告和在這裏解釋http://wesunsolve.net/bugid/id/6795242如何在Solaris/Unix上獲得文件系統的inode計數?

雖然在上面的鏈接建議的解決方案可能工作,但它是醜陋的,我想要一個永久的解決方案。因此,真正在Solaris/Unix上尋找c api會給我一個給定文件系統的inode的總數和可用數量。

非常感謝Sample/Example。

回答

3

系統調用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; 
... 
+0

非常感謝您花時間回答並撰寫示例:) – 2010-12-03 20:29:49