df的数据可能基于而
f_bavail不是
f_bfree。您可能会发现查看df的源代码以了解其工作方式很有帮助。它有许多需要处理的极端情况(例如,当使用的空间超出了非root用户可用的空间量时),但是正常情况的相关代码如下:
uintmax_t u100 = used * 100; uintmax_t nonroot_total = used + available; pct = u100 / nonroot_total + (u100 % nonroot_total != 0);
换句话说
100 * used / (used + available),四舍五入。插入df输出中的值,得到
100 * 14159676 /(14159676 + 25837672) = 35.4015371,舍入为36%,与
df计算得出的一样。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)