2013-09-03 2 views
0

Я хотел бы получить некоторые Infos с C об оборудовании:Как проверить имя, модель, скорость на Windows/Linux C?

  1. сколько процессоров у меня есть
  2. , сколько ядер у каждого из них
  3. сколько логических ядер имеют все ядра в каждом процессоре
  4. название CPU + модель
  5. частота процессора + частота
  6. архитектура процессора (x86, x64)

Я знаю, что на Linux-подобной ОС я могу разобрать /proc/cpuinfo, но поскольку это не обычный файл, я считаю его небезопасным. Пила this ответ на SO, но он не дает мне КАЖДУЮ информацию, которая мне нужна. Должен ли я позвонить cat /proc/cpuinfo > file.txt, а затем разобрать file.txt? Я знаю о cpuid.h (я использую GCC), но не могу найти какой-либо документ об этом заголовке (в любом случае - это хорошая идея его использовать?)

+4

Что значит «небезопасно»? – chrylis

ответ

2

Поддельные файлы Linux procfs могут вести себя очень проблематично. Ядро ложно сообщает о них в виде обычных файлов, но они не ведут себя, поскольку обычные файлы требуются для соответствующей системы POSIX. Например, см. http://www.openwall.com/lists/musl/2013/05/05/9. Я подозреваю, что вы слышали подобные отчеты, и именно здесь вас беспокоит ваше беспокойство.

С учетом сказанного, насколько я знаю, все плохое поведение поддельных «обычных файлов» в /proc относится только к письму. Для чтения они должны вести себя так же, как и обычные обычные файлы, которые вы можете просто прочитать, но вам нравится и не беспокоиться об этом.

Смежные вопросы