Linux查看硬盘大小,用C/C++程序写。
各位,我有如下代码:
struct statfs diskStatfs;
statfs("/", &diskStatfs);
long iTotalCapacity = diskStatfs.f_blocks * (diskStatfs.f_bsize / (1024 * 1024)); (Mb)
long iFreeCapacity = diskStatfs.f_bfree * (diskStatfs.f_bsize / (1024 * 1024)); (Mb)
我想获得系统的整个硬盘大小以及剩余的硬盘大小,可输出的结果都是0。是不是越界了,如果是该怎么改进?
或者有没有更好的方法。
请高手指教,谢谢。
system("fdisk -l");
使用系统提供的shell命令,呵呵...
楼上能否说的详细点,谢谢。
如果用system("fdisk -l"); 我怎样得到结果?
要么你就用浮点数。
整数除法就是这样,小的除大的,结果就是0。
long iTotalCapacity = diskStatfs.f_blocks * diskStatfs.f_bsize / (double)(1024 * 1024); (Mb)
long iFreeCapacity = diskStatfs.f_bfree * diskStatfs.f_bsize / (double)(1024 * 1024); (Mb)
用你这种方法求,结果不是很准,我这样做过,得出的值与实际容量有很大差距。你可以试试、、、我也没有好的解决方法、、、、期待中、、、
是的,得出的结果第一个只有258M。应该是不准的吧。
用 long long 试试,我怀疑是越界、、、、
哈哈 我说错了
呀,那样的话就溢出了,你可能得用long long。
现在值倒是有了,可我总感觉不太对。硬盘哪会这么小呢,iTotalCapacity = 258M,iFreeCapacity = 80M
我用df
相关问答:
想知道每条指令或函数的系统消耗。比如系统执行int a=0;的开销是多少。有没有类似的文档之类的。不要和我说用什么clock()函数来测试。我想要相关总结好的文档
先反汇编,然后拿着cpu的指令手册查每条指令的时间周期 ......
最近突然想自己来实现一个五子棋程序,但不知道怎么开始,自己也没学画图形函数,能在控制台下直接写吗>>>?????
控制台?比图形界面更麻烦。
http://search.download.csdn.net/search/%E4%BA%94%E5%AD%90% ......
大家好!我是一位C爱好者,向大家请教下,C程序员可好找工作?公司用C干些什么?
无所谓好不好找工作,一般通信、系统、嵌入式、硬件方面用的多,而且由于C的底层特性,学会后在学其他的会比较容易
不管用什么语 ......
#include <stdio.h>
main()
{
int a,b,sum;
a=1;b=2;
sum=a+b;
printf("sum is %d\n");
}
结果是:2367460
为什么?
printf("sum is %d\n", ......