怎样通过c编程获得磁盘剩余空间大小?

发布于 2022-09-30 07:54:42 字数 7 浏览 8 评论 0

如题,谢谢大家

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

碍人泪离人颜 2022-10-07 07:54:42

看一下 df 的实现.

失退 2022-10-07 07:54:42

man statfs

玩物 2022-10-07 07:54:42

我用statfs()是得出了结果,可是有点看不懂,请大家指点一下:
df的结果:
Filesystem    512-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4         2097152    860592   59%     2566     1% /
/dev/hd2         3604480     68464   99%    34801     8% /usr
/dev/hd9var       262144    160520   39%     1172     4% /var
/dev/hd3          720896    686856    5%      142     1% /tmp
/dev/hd1         2097152    893704   58%      948     1% /home
/proc                  -         -    -         -     -  /proc
/dev/hd10opt       65536     45376   31%      395     5% /opt
/dev/lv00       16777216   1402608   92%     4378     1% /sybase
/dev/lv05        4194304   3303152   22%       59     1% /Lmis
/dev/sharelv   134217728   6244152   96%   148603     1% /share
/dev/downloadlv   20054016   7776208   62%     4833     1% /.download
/dev/fslv00     20054016  13282512   34%     5161     1% /commfile
/dev/lv06       10289152   9964064    4%       16     1% /0401

statfs()的结果:
f_version:0
f_type:0
f_bsize:4096
f_blocks:262144
f_bfree:111713
f_bavail:111713
f_files:262144
f_ffree:261196
f_f_fsid:655368
f_vfstype:3
f_fsize:512
f_vfsnumber:8
f_vfsoff:0
f_vfslen:0
f_vfsvers:0
f_fname:/home
f_fpack:/home
f_name_max:255

我的工作目录是/home,怎么得到的f_blocks = 262144是/var的值啊,其他的值也看不太懂,我想得到的/home的剩余空间893704怎么得到啊?谢谢大家

陈甜 2022-10-07 07:54:42

你传给statfs的第一个参数是什么?

月光色 2022-10-07 07:54:42

对不起,昨天没说清楚,这段程序要运行在unix和linux两个操作系统上,上面给出的是在AIX上的结果,路径是"/home"
在linux上的运行结果如下:

df的结果:
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2             12689724  11556236    488880  96% /
/dev/hda1               101089     17303     78567  19% /boot
none                    127724         0    127724   0% /dev/shm

statfs()的结果:
cur_path:/root/lxd/lts
f_bsize:4096
f_blocks:3172431
f_bfree:283372
f_bavail:122220
f_files:1612512
f_ffree:1326214
f_f_fsid:0
f_namelen:255
f_spare[0]:0
f_spare[1]:0
f_spare[2]:0
f_spare[3]:0
f_spare[4]:0
f_spare[5]:0

看了半天还是没看太明白,数合不上啊,大家帮帮忙啊,谢啦

何必那么矫情 2022-10-07 07:54:42

f_blocks:3172431 这个是f_bsize:4096 这么大的块的个数,

1K-blocks        
12689724  
这个是1024这么大的块的个数
并且12689724=3172431*(4096/1024)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文