记录点点滴滴,以便后续查阅以及跟大家一起探讨学习
这个是我用在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;
}