我想检查我的处理器在C中是AMD还是INTEL,并根据它做必要的操作。 在C中获取它的正确有效方法是什么?
我应该运行system(linux命令)还是有其他好办法来获取它。
答案 0 :(得分:1)
由于您没有指出您在这里工作的操作系统是如何为OSX执行的
#import <sys/sysctl.h>
我认为在c中它是由#include
调用的同一个库
要使用uint64_t
类型值,您应该包含<stdint.h>
#include <sys/sysctl.h>
len=0;
uint64_t freq = 0; //
size_t size = sizeof(freq);
sysctlbyname("machdep.cpu.brand_string", NULL, &len, NULL, 0);
if(len)
{
sysctlbyname("machdep.cpu.brand_string", &freq, &len, NULL, 0);
}
您将获得的答案将存储在freq
要知道sysctlbyname
的名称,您可以在终端
sysctl -a
我认为sysctl
也与linux兼容,但我从不在linux机器上测试它