Linux下读取磁盘硬盘容量大小的C代码实现,不用df -h命令
2012-12-16 19:03
603 查看
众所周知, df 命令显示磁盘的容量,但是我们需要用C代码来读取的时候, 总不能使用shell脚本吧。所以下面给出了其实现, 实现的结果和用df -h命令显示的基本一致
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
14G 11G 2.5G 81% /
/dev/sda1 99M 21M 73M 23% /boot
tmpfs 252M 0 252M 0% /dev/shm
如下为C代码的实现
#include <sys/vfs.h>
执行输出如下:
/ total=13763MB, free=3246MB
/boot total=98MB, free=78MB
/dev/shm total=251MB, free=251MB
希望对大家有用!
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
14G 11G 2.5G 81% /
/dev/sda1 99M 21M 73M 23% /boot
tmpfs 252M 0 252M 0% /dev/shm
如下为C代码的实现
#include <sys/vfs.h>
struct statfs diskInfo; statfs("/", &diskInfo); unsigned long long totalBlocks = diskInfo.f_bsize; unsigned long long totalSize = totalBlocks * diskInfo.f_blocks; size_t mbTotalsize = totalSize>>20; unsigned long long freeDisk = diskInfo.f_bfree*totalBlocks; size_t mbFreedisk = freeDisk>>20; printf ("/ total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk); statfs("/boot", &diskInfo); totalBlocks = diskInfo.f_bsize; totalSize = totalBlocks * diskInfo.f_blocks; mbTotalsize = totalSize>>20; freeDisk = diskInfo.f_bfree*totalBlocks; mbFreedisk = freeDisk>>20; printf ("/boot total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk); statfs("/dev/shm", &diskInfo); totalBlocks = diskInfo.f_bsize; totalSize = totalBlocks * diskInfo.f_blocks; mbTotalsize = totalSize>>20; freeDisk = diskInfo.f_bfree*totalBlocks; mbFreedisk = freeDisk>>20; printf ("/dev/shm total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk);
执行输出如下:
/ total=13763MB, free=3246MB
/boot total=98MB, free=78MB
/dev/shm total=251MB, free=251MB
希望对大家有用!
相关文章推荐
- Linux查看磁盘属性、文件夹/文件大小的命令 --- df和du
- Linux查看磁盘属性、文件夹/文件大小的命令 --- df和du
- linux学习第十四篇:查看磁盘,文件大小命令:df,du;磁盘分区
- 【Linux命令与工具】磁盘与目录的容量——df和du
- 【Linux】df命令 ,查看磁盘容量。
- statfs获得硬盘使用情况 模拟linux命令 df
- [转]Linux df 命令不更新磁盘数据空间使用情况的解决办法
- 代码实现Linux ls命令
- Linux下查看CPU型号,内存大小,硬盘空间命令
- Linux下模拟ping命令的C代码实现1
- windows下,c /c++实现磁盘扫描,结合配置文件,读取特定后缀文件目录代码
- Linux系统中df与du命令查看分区大小不一致问题分析
- 在linux下代码实现ls -l 命令(利用移位 和 与 操作 对指定位的分离 )(指定位段的分离)
- linux 果看硬盘哪个文件夹占用磁盘大小
- 【转】statfs获得硬盘使用情况 模拟linux命令 df
- Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
- Linux查看磁盘空间及文件大小命令
- linux命令-du查看占用磁盘空间大小
- Linux中df命令查询磁盘信息和fdisk命令分区的用法