記錄點點滴滴,以便後續查閱以及跟大家一起探討學習
這個是我用在nvr外接硬盤時用到的查詢分區空間的接口函數
int GetMountSpaceInfo(char *deviceName, long *tsize, long *fsize, long *asize, unsigned char unit)
{
/*獲得已掛載分區的,總空間,可利用空間,自由空間*/
long bsize;
char locate_disk[48];
struct statfs s;
memset(locate_disk, 0, 48);
strcat(locate_disk, deviceName);
statfs(locate_disk, &s);
if(unit == MB_TYPE)
{
bsize = s.f_bsize >> 10; // in kbytes
*tsize = (bsize * s.f_blocks) >> 10; // in MByte
*fsize = (bsize * s.f_bfree) >> 10; // in MByte
*asize = (bsize * s.f_bavail) >> 10; // in MByte
}
else if(unit == KB_TYPE)
{
bsize = s.f_bsize >> 10; // in kbytes
*tsize = (bsize * s.f_blocks) ; // in kbytes
*fsize = (bsize * s.f_bfree) ; // in kbytes
*asize = (bsize * s.f_bavail); // in kbytes
}
else if(unit == B_TYPE)
{
bsize = s.f_bsize; // in bytes
*tsize = (bsize * s.f_blocks) ; // in bytes
*fsize = (bsize * s.f_bfree) ; // in bytes
*asize = (bsize * s.f_bavail); // in bytes
}
return *asize;
}