据说我用 C++ 编写了一个程序来获取每个硬盘和分区的总大小、可用大小和已用大小。我可以使用命令来做到这一点。
我搜索了一下,发现有两种获取大小的方法,lsblk和df。我知道输出之间存在差异,因为:为什么 df 得到的结果与 lsblk 不一致?
那么我应该选择哪一个?(我也不能在 lsblk 中使用和自由尺寸)
我使用 ubuntu 18.04。
答案1
当您编写 C++ 程序时,我推荐第三种和第四种方法:
- 从 获取分区总大小
/sys/block/sd*/sd*/size
。 - 通过调用 获取文件系统已用大小和文件系统可用大小
statfs
,man statfs
详细信息请参见 。是的,这仅在安装分区时有效。
更快,您不必解析输出,并且您不会陷入(不太可能的)事件df
或lsblk
决定更改其输出格式。