欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

f_bfree和f_bavail的区别

发布时间:2025/5/22 70 豆豆
生活随笔 收集整理的这篇文章主要介绍了 f_bfree和f_bavail的区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Linux系统开发中,在使用statfs统计分区空间时,要注意f_bfree和f_bavail两个值的区别。
实验一下:
以/boot分区为例,上面使用C代码查看分区信息,下面使用系统命令df查看分区信息

#include <stdio.h>#include <sys/vfs.h> int main() {struct statfs sfs;int i = statfs("/boot", &sfs);int percent = (sfs.f_blocks - sfs.f_bfree ) * 100 / (sfs.f_blocks - sfs.f_bfree + sfs.f_bavail) + 1;printf("/dev/sda1 %ld %ld %ld %d%% /boot\n",4*sfs. f_blocks, 4*(sfs.f_blocks - sfs.f_bfree),4*sfs.f_bavail, percent);system("df /boot ");return 0; }

#include <stdio.h>#include <sys/vfs.h> int main() {struct statfs sfs;int i = statfs("/boot", &sfs);int percent = (sfs.f_bfree - sfs.f_bavail ) * 100 / sfs.f_blocks;printf("/dev/sda1 free=%ld avail=%ld block=%ld block-free=%ld percent=%d%% /boot\n", 4*sfs. f_bfree, 4*sfs. f_bavail, 4*sfs. f_blocks, 4*(sfs.f_bfree - sfs.f_bavail), percent);return 0; }

可以看到f_bfree和f_bavail两个值的区别,前者是硬盘所有剩余空间,后者为非root用户剩余空间。一般ext3文件系统会给root留5%的独享空间。所以如果计算出来的剩余空间总比df显示的要大,那一定是你用了f_bfree。 5%的空间大小这个值是仅仅给root用的,普通用户用不了,目的是防止文件系统的碎片。  

总结

以上是生活随笔为你收集整理的f_bfree和f_bavail的区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。