statfs是一个很有用的linux库函数。在它的帮助下,我们可以很容易得到硬盘信息啥的。 以前全是调用command命令,弱爆了。如果用 man 2 statfs 命令可以得到很多其使用方法。本post就简单写个demo表示下存在感
#include <sys/vfs.h> #include <stdio.h> int main() { struct statfs r; printf("%s\n",statfs("/boot",&r)==0?"success":"error"); printf("Total:%ld ; Available:%ld ; Use:%2.2f\% \n", r.f_blocks,r.f_bavail, ((double)(r.f_blocks-r.f_bavail)/r.f_bfree)*100); return 0; }
它检查了下/boot这个目录的分区的block容量和已经占用的大小。
编译输出如下:
[yu@argcv-com statfs]$ ./a.out success Total:495844 ; Available:362335 ; Use:34.42%