прочитайте файл / proc / cpuinfo и посмотрите на строку (и), содержащую "имя модели" (по крайней мере, для Debian / CentOS / OpenSuse, проверьте ваш Linux)
Пример моего raspberrypi:
pi@raspberrypi:/tmp $ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 1
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 2
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 3
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : BCM2835
Revision : a020d3
Serial : 000000003a871273
Пример под CentOS:
[bruno@localhost ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
stepping : 7
cpu MHz : 3409.658
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 8
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm
bogomips : 6819.31
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
...
Например:
#include <stdio.h>
#include <string.h>
int main()
{
FILE * fp = fopen("/proc/cpuinfo", "r");
if (fp == 0)
fprintf(stderr, "cannot open /proc/cpuinfo !");
else {
char line[256];
while (fgets(line, sizeof(line), fp) != NULL) {
if (strncmp(line, "model name", 10) == 0) {
char * model = strchr(line, ':');
if (model != NULL) {
model += (model[1] == ' ') ? 2 : 1;
fputs(model, stdout);
}
break;
}
}
fclose(fp);
}
return 0;
}
Компиляция и исполнение:
pi@raspberrypi:/tmp $ gcc -pedantic -Wextra -Wall c.c
pi@raspberrypi:/tmp $ ./a.out
ARMv7 Processor rev 4 (v7l)
Или, если вы ленивы и не хотите разбирать самостоятельно:
#include <stdio.h>
int main()
{
FILE * fp = popen("grep model /proc/cpuinfo | head | awk -F: '{print $2}'", "r");
if (fp != NULL) {
char line[256];
if (fgets(line, sizeof(line), fp)) {
char * model = (*line == ' ') ? line + 1 : line;
fputs(model, stdout);
}
pclose(fp);
}
return 0;
}
Обратите внимание, что в обоих случаях модель содержит новую строку, эти решения совместимы с любым процессором.