Linux C 获取挂载目录分区使用大小

更新时间:2023-11-18 10:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

主要是使用statfs结构及其方法:

#include 或者

int statfs(const char *path, struct statfs *buf);

int fstatfs(int fd, struct statfs *buf);

成功返回0, 失败返回-1。

以下是系统中的statfs机构体声明:

__SWORD_TYPE int

__fsblkcnt_t unsigned long int

__fsblkcnt64_t unsigned long long int

struct statfs {

__SWORD_TYPE f_type;

__SWORD_TYPE f_bsize; //数据块大小,单位字节 #ifndef __USE_FILE_OFFSET64

__fsblkcnt_t f_blocks; //数据块总数 __fsblkcnt_t f_bfree; //可用数据块数

__fsblkcnt_t f_bavail; //非超级用户可用数据块 __fsfilcnt_t f_files; __fsfilcnt_t f_ffree; #else

__fsblkcnt64_t f_blocks; __fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bavail; __fsfilcnt64_t f_files; __fsfilcnt64_t f_ffree; #endif

__fsid_t f_fsid;

__SWORD_TYPE f_namelen; __SWORD_TYPE f_frsize; __SWORD_TYPE f_spare[5]; };

方法如下:

//获取挂载目录 剩余大小,总大小,单位M

int getFsSize(char *path, long long *freeSize, long long *totalSize) {

本文来源:https://www.bwwdw.com/article/41tv.html

Top