根据问题“如何获取Linux发行版名称和版本?”,要获取 Linux 发行版名称和版本,可以这样做:
lsb_release -a
在我的系统上,它显示了所需的输出:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 9.10
Release: 9.10
Codename: karmic
现在,要在 C++ 中获取此信息,Qt4 的 QProcess 将是一个不错的选择,但由于我是在没有 Qt 的情况下使用 std c++ 进行开发的,所以我需要知道如何在标准 C++ 中获取此信息,即进程的 stdout,以及解析信息的方法。
到目前为止我正在尝试使用代码here但我被困在功能上read().
您可以简单地使用该功能:
int uname(struct utsname *buf);
通过包含标题
#include <sys/utsname.h>
它已经返回名称和版本作为结构的一部分:
struct utsname
{
char sysname[]; /* Operating system name (e.g., "Linux") */
char nodename[]; /* Name within "some implementation-defined network" */
char release[]; /* OS release (e.g., "2.6.28") */
char version[]; /* OS version */
char machine[]; /* Hardware identifier */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS or YP domain name */
#endif
};
我错过了什么吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)