按照問題「How to get Linux distribution name and version?」,獲得Linux發行版的名稱和版本,這個工程:C++得到Linux版本的名稱版本
lsb_release -a
在我的系統,它顯示所需的輸出:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 9.10
Release: 9.10
Codename: karmic
現在,要在C++中獲得這些信息,Qt4的QProcess將是一個很好的選擇,但由於我使用std C++開發沒有Qt,所以我需要知道如何在標準C++中獲得這些信息,即進程的stdout ,也是解析信息的一種方式。
Uptil now我試圖使用來自here的代碼,但是卡在函數read()中。通過包括頭
#include <sys/utsname.h>
它已經返回名稱&版本作爲結構的一部分
int uname(struct utsname *buf);
:
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
};
?從C++開始外部過程?閱讀其輸出? ...請更具體,並顯示你到目前爲止。 – Mat 2011-06-11 11:41:33
更新........... – yolo 2011-06-11 12:02:42
找到答案http://stackoverflow.com/questions/6315666/c-get-linux-distribution-name-version/6316023#6316023 – yolo 2011-06-11 12:56:25