在 linux下可以通过查看 cat /proc/cpuinfo查看CPU的相关信息,但是在linux下C编程需要使用汇编语言来实现,因为C语言中没有实现查看CPU信息的函数,一般实现如下:

(C中运行汇编用 __asm__等)

#include#includestatic inline void

get_cpuid(unsigned int i, unsigned int * buf)

{

unsigned int eax,ebx,ecx,edx;

__asm__ (

"cpuid"

:"=a"(eax),"=b"(ebx),"=c"(ecx),"=d"(edx):"a"(i));

buf[0]=eax;

buf[1]=ebx;

buf[2]=edx;

buf[3]=ecx;

}

int main()

{

unsigned int cpu[4];

get_cpuid(0,cpu);

}

需要清楚的是get_cpuid(i,buf)中i等于不同值,代表不同的含义:

0: Get vendor ID

1: Processor Info and Feature Bits,

3: Processor Serial Number

80000000h: Get Highest Extended Function Supported

80000001h: Extended Processor Info and Feature Bits

80000002h,80000003h,80000004h: Processor Brand String

更多推荐