最近在学习Linux的过程中,需要查看磁盘使用情况,于是查找资料,发现statfs函数可以胜任这个任务.下面将简单介绍statfs函数及其使用。
函数如下:
int statfs(const charpath, struct statfsbuf);
参数:
path: 位于需要查询信息的文件系统的文件路径
buf: statfs结构体类型的指针变量,用于存储文件系统的相关信息
**
struct statfs{
long f_type; //文件系统的类型
long f_bsize; //经优化后的传输块的大小
long f_blocks; //文件系统数据块总数
long f_bfree; //可用块数
long f_bavail; //普通用户能够获得的块数
long f_files; //文件结点总数
long f_ffree; //可用文件结点数
fisd_t f_fsid; //文件系统标识
long f_namelen; //文件名的最大长度
}
要使用该函数首先要导入<sys/statfs.h>头文件,下面是一个简单的测试:
#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/", &diskInfo);
uint64_t blocksize = diskInfo.f_bsize; // 每个block里包含的字节数
uint64_t totalsize =