Количество ФИЗИЧЕСКИХ процессоров на Linux c/c++

130
19 декабря 2019, 08:40

Не понимаю , как написать код на 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,что верно

Answer 1

В статье 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.
если никто еще не напишет, то завтра попробую написать поподробней на русском...

Answer 2

Тут как вызвать из С консольную команду

C вызов консольной команды и возвращение текстового значения

и попробуйте

grep -c ^processor /proc/cpuinfo
READ ALSO
Pedis от SEASTAR

Pedis от SEASTAR

Случайно наткнулся на интересный репозиторий, где показывают аналог Redis, который называется Pedishttps://github

152
Зачем нам нужны синглтоны в С++?

Зачем нам нужны синглтоны в С++?

Когда-то давно (лет 7 назад) читал я АлександрескуИ обратил внимание, что он много места уделял созданию синглтонов

165
g++ warning: ISO C++ forbids converting a string constant to 'char*' при запуске sqlite

g++ warning: ISO C++ forbids converting a string constant to 'char*' при запуске sqlite

Запускаю простейший пример, c habr, иллюстрирующий работу с базой данных sqlite

151
Посчитать число слов в файле

Посчитать число слов в файле

Есть файлВ нём несколько строк

132