用C获取操作系统名称[Linux,可移植用于发行版:Centos,Debian,Fedora,OpenSUSE,RedHat,Ubuntu]

Bri*_*own 5 c linux operating-system

我知道我可以用这个简单的命令检查我的操作系统名称:lsb_release -ds.但我也知道,它在我需要它的所有平台上都不可移植.我试过struct utsname info;并且uname(&info)它工作得很好,但只给我"基础"名称 - "Linux".

是否有任何便携式(C)方式获得完整的操作系统名称?至少可以在Centos,Debian,Fedora,OpenSUSE,RedHat,Ubuntu之间移植吗?干杯

Chr*_*odd 1

系统uname调用为您提供字段中的通用系统类型(Linux在所有情况下) ,但它还在、和字段sysname中提供附加数据。该字段将为您提供内核版本,该字段将为您提供通用系统版本,对于您提到的所有各种 Linux 变体来说,该版本都会有所不同。releaseversionmachinereleaseversion