如题,谢谢大家
看一下 df 的实现.
man statfs
我用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:0f_type:0f_bsize:4096f_blocks:262144f_bfree:111713f_bavail:111713f_files:262144f_ffree:261196f_f_fsid:655368f_vfstype:3f_fsize:512f_vfsnumber:8f_vfsoff:0f_vfslen:0f_vfsvers:0f_fname:/homef_fpack:/homef_name_max:255
我的工作目录是/home,怎么得到的f_blocks = 262144是/var的值啊,其他的值也看不太懂,我想得到的/home的剩余空间893704怎么得到啊?谢谢大家
你传给statfs的第一个参数是什么?
对不起,昨天没说清楚,这段程序要运行在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% /bootnone 127724 0 127724 0% /dev/shm
statfs()的结果:cur_path:/root/lxd/ltsf_bsize:4096f_blocks:3172431f_bfree:283372f_bavail:122220f_files:1612512f_ffree:1326214f_f_fsid:0f_namelen:255f_spare[0]:0f_spare[1]:0f_spare[2]:0f_spare[3]:0f_spare[4]:0f_spare[5]:0
看了半天还是没看太明白,数合不上啊,大家帮帮忙啊,谢啦
f_blocks:3172431 这个是f_bsize:4096 这么大的块的个数,
1K-blocks 12689724 这个是1024这么大的块的个数并且12689724=3172431*(4096/1024)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(6)
看一下 df 的实现.
man statfs
我用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怎么得到啊?谢谢大家
你传给statfs的第一个参数是什么?
对不起,昨天没说清楚,这段程序要运行在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
看了半天还是没看太明白,数合不上啊,大家帮帮忙啊,谢啦
f_blocks:3172431 这个是f_bsize:4096 这么大的块的个数,
1K-blocks
12689724
这个是1024这么大的块的个数
并且12689724=3172431*(4096/1024)