如何确定我在 MacOSX 中运行的硬件
How to determine which hardware I'm running on in MacOSX
我一直在写一段代码,其中包含只有在Macbook、Macbook Pro或Macbook Air上运行时才能执行的部分。
到目前为止,我使用的是Targetconditionals.h,但我只能验证我没有使用此策略在手机上运行,并且我的代码一直在iMac和MacMini上执行。
你们有没有任何关于如何获得一些特定信息的提示,只有当程序在Macbook、Macbook Pro或Macbook Air中运行时,这些信息才会匹配?
在这里,我终于得到了一些可能对类似情况下的其他人有所提示的东西:
#include <string>
#include <sys/sysctl.h>
bool isMacBook()
{
size_t len = 0;
::sysctlbyname("hw.model", nullptr, &len, nullptr, 0);
std::string model(len, ' ');
::sysctlbyname("hw.model", const_cast<char *>(model.data()), &len, nullptr, 0);
return model.find("MacBook") != std::string::npos;
}
我不认为这是一个完整的修复,但在我看来,它可以提供有用的信息。
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 从硬件异常处理程序引发C++异常.为什么 -fnon-call-exception 没有按预期运行
- 在没有兼容硬件的情况下运行OpenCL
- 如何确定我在 MacOSX 中运行的硬件