当前位置: 技术问答>linux和unix
用statfs计算出来得剩余空间与实际空间不符合阿
来源: 互联网 发布时间:2016-01-05
本文导语: 我用以下代码,计算出来的磁盘剩余空间不符合实际 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...
我用以下代码,计算出来的磁盘剩余空间不符合实际
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);
}
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 返回的是文件系统剩余的块,
不是文件系统剩余的可用空间,系统还要使用一部分。
两个很大的long的数值的乘积会溢出
2 statfs 返回的是文件系统剩余的块,
不是文件系统剩余的可用空间,系统还要使用一部分。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。