Я создаю приложение, и мне нужно получить размер жесткого диска:
Я работаю на 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;
}
Я вижу, что результат в ГБ равен 465. Однако проверка Системной информации говорит мне, что у меня 500 ГБ
Что я делаю неправильно? Это лучший способ получить эти цифры?
Примечание: я использую C ++ в Mac OS, не могу использовать Objective-C
Заранее спасибо