读书人

用statfs计算出来得剩余空间与实际空间

发布时间: 2012-03-01 10:25:46 作者: rapoo

用statfs计算出来得剩余空间与实际空间不符合阿
我用以下代码,计算出来的磁盘剩余空间不符合实际

long fed_free_capacity()
{
struct statfs buf;
int i;
long temp;
i = statfs( "/mnt ",&buf);

if (i == 0)
{
temp=buf.f_bfree * buf.f_bsize;
// return ((buf.f_bfree * buf.f_bsize) ;
return temp;
}

return 0;
}

int main()
{

long leftsize=0;
printf( "caculate the /mnt free spaces.......\n ");
leftsize=fed_free_capacity();
printf( "the left size is %d \n ",leftsize);

}

[解决办法]
1 你的程序是不是溢出了
两个很大的long的数值的乘积会溢出
2 statfs 返回的是文件系统剩余的块,
不是文件系统剩余的可用空间,系统还要使用一部分。

读书人网 >UNIXLINUX

热点推荐