Я пишу программу, которая отображает различную системную информацию (в системе CentOS). Например, тип процессора и скорость (от /proc/cpuinfo), время последней загрузки (рассчитывается из /proc/uptime), IP-адрес (из ifconfigвывода) и список установленных принтеров (из lpstatвывода).
В настоящее время из dmidecodeпрограммы получено несколько фрагментов данных :
- Тип платформы (
dmidecode -s system-product-name) - Версия BIOS (
dmidecode -s bios-version) - Объем физической памяти (
dmidecode -t17 | grep Size)
Они доступны только в том случае, если моя программа запускается от имени пользователя root (поскольку в противном случае dmidecodeподпроцесс завершается с /dev/mem: Permission deniedошибкой). Есть ли альтернативный способ получения этой информации, к которому может обратиться обычный пользователь?
/sys/devices/virtual/dmi/id. Много информации о платформе доступно там. Для удобного сценария см. Unix.stackexchange.com/questions/75750/… . Для системной информации, ваше другое предложение тоже хорошо. Есть много утилит, таких какfreeили даже,htopкоторые могут получить то, что вы хотите.