Linux:从/ proc获取挂载点利用率?

时间:2014-04-16 18:05:56

标签: c linux embedded-linux

我知道我可以使用命令行工具(如df)获取挂载点利用率,并执行以下操作:

popen("df -h /var/log | awk '{if($1==\"tmpfs\") print $5}'","r")

其中第五列是使用百分比。

我想知道的是,是否有办法从/ proc /访问挂载点利用率,例如/ proc / mounts。我觉得从/ proc /获取这些信息比使用df和awk解析用法更快更有效。我搜索过mntent.h,但也找不到任何有希望的东西。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您可能想要statfs(2)系统调用(它不使用/proc/)。您可能会通过statvfs(3) Posix函数使用它。

请注意,/proc/文件系统(以及/sys/ ...)包含由内核按需生成的伪文件,没有任何IO。见proc(5)。您可以按顺序阅读/proc/self/mounts和/或/proc/self/mountstats和/或/proc/fs/和/或/sys/下的相应文件(例如/proc/fs/ext4/sda1/中的某些文件,甚至是我的桌面计算机的/sys/block/sda/sda1/; 你的会有所不同....)

也许systemd也可以提供此类信息,但我不太了解它。