自己做个笔记。转自http://blog.csdn.net/q1302182594/article/details/47345973
1 命令
根据参考资料[4]的说明,可以使用df命令查看系统的磁盘空间。
2 函数
参考资料[3]介绍了用于获取磁盘容量信息的函数statfs(),并且提供了一个简单的例程。由于参考资料[3]的例程中,单位转换时使用右移代替除法,从而导致结果不准。这里我将其进行修改,结果如下所示:
- #include <sys/statfs.h>
- #include <stdio.h>
- #include <stdint.h>
-
- #define KB 1024.0 // 2^10
- #define MB 1048576.0 // 2^20
- #define GB 1073741824.0 // 2^30
-
- int main(void)
- {
- struct statfs diskInfo;
-
- statfs("/home/liyihai/", &diskInfo);
- uint64_t blocksize = diskInfo.f_bsize;
- uint64_t totalsize = blocksize * diskInfo.f_blocks;
- printf("Total_size = %lld B = %f KB = %f MB = %f GB\n",
- totalsize,
- totalsize / KB,
- totalsize / MB,
- totalsize / GB);
-
- uint64_t freeDisk = diskInfo.f_bfree * blocksize;
- uint64_t availableDisk = diskInfo.f_bavail * blocksize;
- printf("Disk_free = %f MB = %f GB\n"
- "Disk_available = %f MB = %f GB\n",
- freeDisk / MB,
- freeDisk / GB,
- availableDisk / MB,
- availableDisk / GB);
-
- return 0;
- }
参考资料
[1]linux下获取磁盘的总空间大小和可用空间大小
[2]关于用linux C函数实现查看磁盘空间大小
[3]linux下C编程--利用statfs函数查看磁盘空间
[4]linux如何查看磁盘剩余空间
[5]struct statfs http://blog.csdn.net/a1989a132/article/details/8848485