디스크 사용량을 알아보려 하는데...값이 이상하네요...

ljksky의 이미지

statfs() 를 사용해서 간단하게 디스크 사용량을 알아보려 하는데
값이 이상하네요.. 사용법을 잘못알고있는건지.......

df
---------------------------------------------------------------------

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2             10080520    305792   9262660   4% /
/dev/hda1               101089      9398     86472  10% /boot
none                    127692         0    127692   0% /dev/shm
/dev/hda5             21805308    764992  19932636   4% /usr
------------------------------------------------------------------------------

test.c
---------------------------------------------------------------------------

#include <stdio.h>
#include <sys/vfs.h>

int main(void)
{

struct statfs fs;
struct statfs fs1;
statfs("/dev/hda5", &fs) ;
printf("/dev/hha5의   총 용량 : %ld bytes\n", fs.f_bsize * fs.f_blocks );
printf("/dev/hda5의 가용 용량 : %ld bytes\n", fs.f_bsize * fs.f_bavail );

statfs("/dev/hda1", &fs1) ;
printf("/dev/hha1의   총 용량 : %ld bytes\n", fs1.f_bsize * fs1.f_blocks );
printf("/dev/hda1의 가용 용량 : %ld bytes\n", fs1.f_bsize * fs1.f_bavail );

}

---------------------------------------------------------------------------

test 실행결과..

---------------------------------------------------------------------------

$ ./test
/dev/hha5의   총 용량 : 1732517888 bytes
/dev/hda5의 가용 용량 : 895037440 bytes
/dev/hha1의   총 용량 : 1732517888 bytes
/dev/hda1의 가용 용량 : 895037440 bytes
---------------------------------------------------------------------------
ljksky의 이미지

df 한 결과와 다르게

hda1과 hda5 의값이 왜 같은지모르겠네요...

..

nexnil의 이미지

statfs("/dev/hda1",&fs);에서 "/dev/hda1"이 마운트된 경로로 해주세요.
"/dev/hda1" 가 "/"로 되어 있으면 statfs("/",&fs);를 하시도록...