statfsでディスクのサイズを知る@linux
linuxのソフト開発メモ。
リムーバブルストレージの最大容量分のログの保存のために、最初にログ保存可能件数を計算する必要があった。
dfコマンドつかって、シェルで処理しようかと思っていたが、statfsというシステムコール関数があることを発見。
dfコマンドはこのシステムコールを使用しているらしい。
で、早速テストプログラムを作成し、動作の確認。
マウントしたディレクトリの単位で調べられるので結構他にも使えるかも。
#include
#include
#include
#include
int main()
{
int i,j,k,n;
struct statfs buf;
// statfs("/", &buf );
statfs("/mnt/usb", &buf );
i = buf.f_bsize / 1000 ;
j = buf.f_bfree * i / 1024;
n = buf.f_blocks * i / 1024;
printf("free %d M bytes \n", j );
k = buf.f_bavail * i / 1024;
printf("I can use %d M bytes \n", k );
printf("Disk size %d M bytes \n",n);
printf("test\n");
exit(0);
}

0 Comments:
コメントを投稿
<< Home