在C中,从设备名称获取硬盘可用空间

在C中,从设备名称获取硬盘可用空间,c,linux,hard-drive,C,Linux,Hard Drive,为了获得硬盘上的数据,可以使用 它采用路径或fd int statvfs(const char *path, struct statvfs *buf); int fstatvfs(int fd, struct statvfs *buf); 在我的应用程序中,我正在解析/proc/diskstats,它为我提供设备名(例如:sda1、sda2) 我不知道如何使用该设备名称来获得与statvfs功能相同的统计数据。 可以使用哪些功能?要将设备与其安装位置进行连接,请查看安装。mount的源代码应该

为了获得硬盘上的数据,可以使用

它采用路径或fd

int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);
在我的应用程序中,我正在解析/proc/diskstats,它为我提供设备名(例如:sda1、sda2)

我不知道如何使用该设备名称来获得与statvfs功能相同的统计数据。
可以使用哪些功能?

要将设备与其安装位置进行连接,请查看
安装
mount
的源代码应该告诉您如何找到每个设备的安装路径。然后,您可以打开路径并调用
statvfs
读取
/etc/mtab
,并将设备名称映射到装载路径