我正在尝试从C ++代码获取Linux操作系统名称(例如“ Ubuntu 16.04”,“ Ubuntu 14.04”等)。我开始了解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
答案 0 :(得分:1)
在终端中尝试此命令:
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命令进行解析)