linuxc语言获取CPU的名称?
时间: 2023-05-20 09:00:51 浏览: 192
可以使用 Linux 命令行工具 lscpu 来获取 CPU 的名称,也可以使用 C 语言中的 sysconf 函数来获取 CPU 的信息。以下是使用 sysconf 函数获取 CPU 名称的示例代码:
#include <stdio.h>
#include <unistd.h>
int main() {
long num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
printf("Number of CPUs: %ld\n", num_cpus);
char cpu_name[256];
size_t len = sizeof(cpu_name);
if (sysconf(_SC_CPUID_MAX) > 0 && sysconf(_SC_CPUID_FEATURES) > 0) {
if (sysconf(_SC_CPUID_MAX) >= 0x80000004) {
__asm__("cpuid\n\t"
"mov %%ebx, %[cpu_name]\n\t"
"mov %%edx, %[cpu_name]+4\n\t"
"mov %%ecx, %[cpu_name]+8\n\t"
: [cpu_name] "=m" (cpu_name)
: "a" (0x80000002)
: "%ebx", "%ecx", "%edx");
__asm__("cpuid\n\t"
"mov %%eax, %[cpu_name]+12\n\t"
: [cpu_name] "+m" (cpu_name));
cpu_name[len - 1] = '\0';
printf("CPU name: %s\n", cpu_name);
}
}
return 0;
}