[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 ", 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 ", 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 ", mbTotalsize, mbFreedisk);
执行输出如下:
/ total=13763MB, free=3246MB
/boot total=98MB, free=78MB
/dev/shm total=251MB, free=251MB