statfs结构如下:
struct statfs
{
long f_type; /* 文件系统类型 */
long f_bsize; /* 经过优化的传输块大小 */
long f_blocks; /* 文件系统数据块总数 */
long f_bfree; /* 可用块数 */
long f_bavail; /* 非超级用户可获取的块数 */
long f_files; /* 文件结点总数 */
long f_ffree; /* 可用文件结点数 */
fsid_t f_fsid; /* 文件系统标识 */
long f_namelen; /* 文件名的最大长度 */
};
statfs接口调用成功返回0,失败返回-1.
简单用法:
int resultCode = statfs(path.c_str(), &data);
if (resultCode < 0) {
return false;
} else {
unsigned long freeSize = data.f_bsize * data.f_bfree;
unsigned long availSize = data.f_bsize * data.f_bavail;
unsigned long totalSize = data.f_bsize * data.f_blocks;
}
单位bytes,使用>>20转为MB。