在c中获取处理器供应商名称的正确方法是什么?

时间:2014-11-11 20:47:36

标签: c processor

我想检查我的处理器在C中是AMD还是INTEL,并根据它做必要的操作。 在C中获取它的正确有效方法是什么?

我应该运行system(linux命令)还是有其他好办法来获取它。

1 个答案:

答案 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机器上测试它

http://www.unix.com/man-page/freebsd/3/sysctlbyname/