C++ 查找unix平台名称
我希望能够根据平台名称确定输出文件夹:AS3、AS4、AS5、SUN 我不知道如何从系统中提取平台名称。我尝试了:C++ 查找unix平台名称,c++,linux,bash,C++,Linux,Bash,我希望能够根据平台名称确定输出文件夹:AS3、AS4、AS5、SUN 我不知道如何从系统中提取平台名称。我尝试了: uname -a file /bin/bash 谢谢 解决方案 /lsb_发布-a 保罗·迪克森(Paul Dixon)我认为您必须为每个操作系统查找特定的文件。例如,在SunOS上,您可以键入: uname -s -r -v 对于RHEL,请选中/etc/issue一些linux系统将支持以获取Unix平台上的操作系统信息 struct utsname buf; uname
uname -a
file /bin/bash
谢谢
解决方案
/lsb_发布-a
保罗·迪克森(Paul Dixon)我认为您必须为每个操作系统查找特定的文件。例如,在SunOS上,您可以键入:
uname -s -r -v
对于RHEL,请选中
/etc/issue
一些linux系统将支持以获取Unix平台上的操作系统信息
struct utsname buf;
uname(&buf);
cout << buf.sysname << endl;
struct utsname buf;
联埃特派团(&buf);
cout看起来你想要(至少部分)发行号。在Red Hat上,您可以获得如下释放:
> cat /etc/redhat-release
CentOS release 4.3 (Final)
Red Hat Enterprise Linux WS release 4 (Nahant Update 4)
许多其他Linux发行版在/etc中都有自己的文件,这些文件也给出了发行号:
/etc/redhat发行版
/etc/SuSE发布
/etc/ubuntu发行版
/etc/fedora发行版
等等。在过去(甚至在Linux之前),我发现/bin/arch
在Unix系统中相当普遍,对于获取有关硬件平台的信息非常有用。(在Linux上,它返回的值与uname-m
相同)。它是根据一些标准手动导出的,在本例中我无法使用这些标准。我认为AS3是标准的,可以根据系统的特性来确定。ThanksIt打印Linux,我需要它打印AS3、AS4或AS5——有办法确定吗?谢谢