Как я могу определить количество процессоров в системе OpenBSD с помощью системных инструментов или кода C?
Известный мне метод подсчета ЦП на других платформах BSD - проверка /var/run/dmesg.boot
для определенных строк не всегда работает.
Больше контекста: К сожалению, у меня нет системы OpenBSD, с которой можно было бы поиграть. Я пытаюсь обратиться специфичные для OpenBSD сбои тестов для модуля Perl.
В OpenBSD у вас есть:
sysctl hw.ncpu
или
sysctl hw.ncpufound
Как объяснено в sysctl (3), ncpu - это количество процессоров, используемых системой, а ncpufound - это количество процессоров, обнаруженных системой.
Кстати, devio.us предоставляет бесплатную учетную запись оболочки на серверах OpenBSD.
Во FreeBSD это
sysctl -n hw.ncpu
и на Дарвине
sysctl -n hw.availcpu
Так, может быть, это похоже? Думаю, есть системный вызов, но сначала я бы покопался в командной строке.
Интернет говорит мне попробовать это
dmesg | grep -i CPU
или
sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
есть ли cpuinfo ?? Я знаю, что вы можете иметь это в вариантах BSD ..