关于文件和磁盘的大小计算
文件——与du命令结果一样
struct stat statbuf;
lstat(path,&statbuf);
(statbuf.st_blocks)*512/1024;//KB为单位
磁盘——与df命令结果不同
struct mntent *ent;
struct statfs fs;
FILE *fp = setmntent(_PATH_MOUNTED,"r");
ent = getmntent(fp);
cout<<ent->mnt_fsname<<endl;//ent->mnt_fsname为:/dev/sda5
statfs(ent->mnt_fsname,&fs);
endmntent(fp);
cout<<"磁盘:"<<****<<endl;
这边的****为:
fs.f_blocks
fs.f_blocks*512/1024
fs.f_blocks/1024*fs.f_bsize/1024
真不知道要怎么算了,那个fs.f_blocks到底是什么鸟东西,和st_blocks不一样的吗
怎么算磁盘的空间呢?