在Mac上使用C ++,如何检查机器是笔记本电脑还是台式机?

时间:2014-08-21 17:21:53

标签: c++ macos

在PC上,有一种方法可以做,因为这篇文章建议How to check the machine type? laptop or desktop?

我需要在Mac上做同样的事情。提前致谢。

1 个答案:

答案 0 :(得分:3)

实现这一目标的一种方法是获得机器模型:

#include <sys/sysctl.h>

size_t len = 0;
sysctlbyname("hw.model", NULL, &len, NULL, 0);

char* model = (char*)malloc(len + 1);
memset(model, 0, len + 1);

sysctlbyname("hw.model", model, &len, NULL, 0);
printf("%s", model);
free(model)

在我的MBP打印&#34; MacBookPro5,5&#34;。其他型号包括&#34; MacBookAir&#34;,&#34; iMac&#34;,&#34; Macmini&#34;,&#34; MacPro&#34;。所以,如果有&#34; book&#34;在模型名称中,它可能是笔记本电脑:

if (strcasestr("book", model)) {
    // This is laptop
}