gpt4 book ai didi

c++ - 以编程方式确定我正在运行的发行版

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:56 27 4
gpt4 key购买 nike

全部,

我想看看我正在运行我的 C++ 程序的 Linux 风格是什么。

我找到了 this answer on SO suggesting the uname program但人们通常不想在 C++ 代码中解析某些实用程序的输出。

现在我可以在配置中做这样的测试,但我感兴趣的是我的程序的用户有什么操作系统,而不是我在哪里进行编译,这可能是完全不同的(我个人喜欢 Gentoo,但没有人能保证我的客户会得到它)。

那么有什么可靠的方法可以从 C++ 程序中确定 Linux 发行版的名称吗?

最佳答案

呼应这个问题的最佳答案https://unix.stackexchange.com/questions/6345/how-can-i-get-distribution-name-and-version-number-in-a-simple-shell-script在 Unix Stack Exchange 上:

比执行命令并解析它稍微好一点的是告诉您的代码解析文件/etc/lsb-release,它看起来是这样的:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"

DISTRIB_ID 行是发行版名称所在的行。 警告,根据 lsb-release man page , 此行是可选的。然而,许多发行版(包括 Mint、Ubuntu、Redhat,当然还有 Gentoo)的最新版本在它们的/etc/lsb-release 文件中包含 DISTRIB_ID。

考虑到这些注意事项,您可能会发现解析 lsb-release 足以满足您的目的,尽管要获得最广泛的覆盖,您必须硬着头皮执行并解析相关实用程序 lsb_release,以及可能回退到其他实用程序。

关于c++ - 以编程方式确定我正在运行的发行版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com