Не понимаю , как написать код на c/c++ для определения количества ФИЗИЧЕСКИХ процессоров (не ядер) . Может можно как-то интерпретировать команды терминала на c/c++.
Еще интересно то ,что при cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l выдает 0 ,почему-то
А при ls /sys/devices/system/node|grep node|wc -l выдает 4,что верно
В статье Understanding Linux /proc/cpuinfo
есть достаточно понятное описание
The kernel data Linux exposes in /proc/cpuinfowill show each logical CPUwith a unique processor number. A logical CPUcan be a hyperthreadingsibling,a shared core in a dual or quad core, or a separate physical CPU. We must look at the siblings, CPUcores and core id to tell the difference
и далее примеры, как определить сколько каких процессоров в вашей системе.
P.S.
если никто еще не напишет, то завтра попробую написать поподробней на русском...
Тут как вызвать из С консольную команду
C вызов консольной команды и возвращение текстового значения
и попробуйте
grep -c ^processor /proc/cpuinfo
Сборка персонального компьютера от Artline: умный выбор для современных пользователей