簡體   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