用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 返回的是文件系统剩余的块, 
 不是文件系统剩余的可用空间,系统还要使用一部分。