Определить имя ОС Linux из UTSNAME - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь получить имя ОС Linux (например, что-то вроде «Ubuntu 16.04», «Ubuntu 14.04» и т. Д.) Из кода c ++.Я узнал об utsname и попытался использовать его.Но значения в полях структуры sysname, release, version и т. Д. Слишком описательны, и я хочу что-то простое (например, «Ubuntu 16.04», «Ubuntu 14.04» и т. Д.).Есть ли какой-нибудь документ, который сопоставляет значения в структуре utsname с некоторыми простыми именами?

Значение полей структуры utsname:

sysname: Linux
nodename: ubuntu16-server
release: 4.4.0-130-generic
version: #156-Ubuntu SMP Thu Jul 29 23:11:20 UTC 2017
machine: x86_64

1 Ответ

0 голосов
/ 26 сентября 2018

попробуйте эту команду в терминале:

    cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

или это:

    cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"

Я не знаю, в какой среде программирования вы кодируете .. поэтому вам может понадобиться Process выполнить и вернуть команду терминала, а затем вам нужно проанализировать вывод.(Разбор может быть выполнен также с помощью команды cat в терминале, если хотите)

...