HDD 大小来自 df 或 lsblk?

HDD 大小来自 df 或 lsblk?

据说我用 C++ 编写了一个程序来获取每个硬盘和分区的总大小、可用大小和已用大小。我可以使用命令来做到这一点。
我搜索了一下,发现有两种获取大小的方法,lsblk和df。我知道输出之间存在差异,因为:为什么 df 得到的结果与 lsblk 不一致?
那么我应该选择哪一个?(我也不能在 lsblk 中使用和自由尺寸)
我使用 ubuntu 18.04。

答案1

当您编写 C++ 程序时,我推荐第三种和第四种方法:

  • 从 获取分区总大小/sys/block/sd*/sd*/size
  • 通过调用 获取文件系统已用大小和文件系统可用大小statfsman statfs详细信息请参见 。是的,这仅在安装分区时有效。

更快,您不必解析输出,并且您不会陷入(不太可能的)事件dflsblk决定更改其输出格式。

相关内容