如何确定我在MacOSX上运行的硬件

时间:2014-09-03 20:02:05

标签: c++ macos hardware

我一直在编写一段代码,其中包含只有在Macbook,Macbook Pro或MacBook Air上运行时才能执行的部分。

到目前为止,我正在使用Targetconditionals.h,但是我只能验证我是否使用此策略在移动设备上运行,并且我的代码仍然在iMac和Mac Mini上执行。

您是否有任何关于如何获取某些特定信息的提示,这些信息仅在程序在Macbook,Macbook Pro或Macbook Air中运行时才会匹配?

1 个答案:

答案 0 :(得分:0)

最后,我得到了一些可能暗示其他类似情况的提示:

#include <string>
#include <sys/sysctl.h>


bool isMacBook()
{
    size_t len = 0;
    ::sysctlbyname("hw.model", nullptr, &len, nullptr, 0);
    std::string model(len, '\0');
    ::sysctlbyname("hw.model", const_cast<char *>(model.data()), &len, nullptr, 0);
    return model.find("MacBook") != std::string::npos;
}

我不认为这是一个完整的解决方案,但在我看来,它可以提供有用的信息。