在 Linux 中,可以使用库函数 CPUID
来获取 CPU 的信息
首先,确保已经安装了 libcpuid
库。如果没有安装,可以使用以下命令安装:
sudo apt-get install libcpuid-dev
接下来,创建一个名为 cpuid.c
的文件,并在其中编写以下代码:
#include <stdio.h>
#include <stdint.h>
#include <cpuid.h>
void print_cpuid(uint32_t eax, uint32_t ebx, uint32_t ecx, uint32_t edx) {
printf("CPUID: EAX = 0x%x, EBX = 0x%x, ECX = 0x%x, EDX = 0x%x\n", eax, ebx, ecx, edx);
}
int main() {
uint32_t eax, ebx, ecx, edx;
// 获取 CPUID 信息
__asm__ __volatile__(
"cpuid"
: "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
: /* No inputs */
: "eax", "ebx", "ecx", "edx"
);
// 打印 CPUID 信息
print_cpuid(eax, ebx, ecx, edx);
return 0;
}
在这个示例中,我们使用内联汇编(__asm__
)来调用 cpuid
指令,并将结果存储在 eax
、ebx
、ecx
和 edx
寄存器中。然后,我们定义了一个 print_cpuid
函数来打印这些寄存器的值。
要编译这个程序,请在终端中运行以下命令:
gcc -o cpuid cpuid.c -lcpuid
这将生成一个名为 cpuinfo
的可执行文件。现在,你可以运行这个程序来获取 CPU 的信息:
./cpuinfo
输出将类似于以下内容:
CPUID: EAX = 0x12345678, EBX = 0x87654321, ECX = 0xabcdef12, EDX = 0x34567890
这就是如何在 Linux 中使用库函数 CPUID
获取 CPU 的信息。