使用C ++在MacOS上以编程方式获取HDD大小

时间:2018-11-10 11:59:39

标签: macos c++11 filesystems

我正在构建应用程序,我需要获取HDD大小: 我正在Mac OS上工作。我已经尝试过了:

#include <sys/param.h>
#include <sys/mount.h>

float MonitoringWorker::getHDDSize()
{
 struct statfs statf;

 statfs(".", &statf);

 std::cout << "statf.f_bsize = " << statf.f_bsize << std::endl;
 std::cout << "statf.f_blocks = " << statf.f_blocks << std::endl;
 std::cout << "statf.f_bavail = " << statf.f_bavail << std::endl;
 std::cout << "statf.f_bfree = "<< statf.f_bfree << std::endl;
 std::cout << "GB = "<< ((statf.f_bsize * statf.f_blocks) /  kBytesInGB)<< std::endl;
 return 0;

}

我看到GB的结果是465。但是检查“系统信息”告诉我我有500GB 我究竟做错了什么?这是获取这些数字的最佳方法吗?

注意:我在Mac OS上使用C ++,不能使用Objective-C

预先感谢

0 个答案:

没有答案