繁体   English   中英

从 utsname 中找出 Linux 操作系统名称

[英]Figure out Linux OS name from utsname

我正在尝试从 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

在终端中试试这个命令:

    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 命令进行解析)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM