2010-12-03 16 views
2

私は次のコマンドを呼び出して、アウトプッアップdf -F ufs -o iを読んでいました。最初はうまくいきましたが、ここで報告された理由で失敗し始めました。http://wesunsolve.net/bugid/id/6795242Solaris/Unix上のファイルシステムのinode数を取得する方法は?

上記のリンクで提案されている解決策はうまくいくかもしれませんが、醜いですが永久的な解決策が必要です。だから、実際にSolaris/Unixのc apiを探して、ファイルシステムを与えられたiノードの総数と利用可能な数を知ることができます。

サンプル/例は高く評価されています。

答えて

3

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; 
... 
+0

お返事ありがとうございました。ありがとうございました。 –

関連する問題