statfs结构体和函数详解——例程

本文详细介绍了Linux系统中用于获取磁盘空间信息的statfs函数和struct statfs结构体,包括其功能、成员解释以及一个实际的代码示例。通过示例,展示了如何获取磁盘的总大小、可用空间等信息,并将其转换为KB、MB、GB单位,同时讨论了在处理GB单位时保留两位小数的方法。
摘要由CSDN通过智能技术生成

因为要读取SD卡的大小和使用情况,所以用到statfs这个函数,功能类似于df命令。

需要的头文件:#include <sys/vfs.h> 

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

功能:获取当前文件系统下磁盘空间使用情况。

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; /* 文件名的最大长度 */
};

返回值:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值  

EACCES: (statfs())文件或路径名中包含的目录不可访问
EBADF : (fstatfs()) 文件描述词无效
EFAULT: 内存地址无效
EINTR : 操作由信号中断
EIO    : 读写出错
ELOOP : (statfs())解释路径名过程中存在太多的符号连接
ENAMETOOLONG:(statfs()) 路径名太长
ENOENT:(statfs()) 文件不存在
ENOMEM: 核心内存不足
ENOSYSÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值