【发布时间】:2010-10-08 03:39:48
【问题描述】:
我希望能够根据平台名称确定输出文件夹:AS3、AS4、AS5、SUN。
我不知道如何从系统中提取平台名称。我尝试过:
uname -a
file /bin/bash
谢谢
解决方案
./lsb_release -a
向保罗·迪克森致敬
【问题讨论】:
-
它是根据一些标准手动导出的,在这种情况下我不能使用。我认为AS3等是标准的,可以根据系统的特性来确定。谢谢
我希望能够根据平台名称确定输出文件夹:AS3、AS4、AS5、SUN。
我不知道如何从系统中提取平台名称。我尝试过:
uname -a
file /bin/bash
谢谢
解决方案
./lsb_release -a
向保罗·迪克森致敬
【问题讨论】:
在过去(甚至在 Linux 之前)我发现 /bin/arch 在 Unix 系统中相当普遍,并且对于获取有关您的硬件平台的一些信息很有用。 (在 Linux 上,它返回的结果与 uname -m 相同)。
【讨论】:
看起来您想要(至少部分)发布号。在 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-release/etc/SuSE-release/etc/ubuntu-release/etc/fedora-release等等
【讨论】:
我认为您必须查看每个操作系统的特定文件。例如,在 SunOS 上,您可以键入:
uname -s -r -v
对于 RHEL,请查看 /etc/issue。
【讨论】:
您可以包含 sys/utsname.h 以获取 Unix 平台上的操作系统信息。
struct utsname buf;
uname(&buf);
cout << buf.sysname << endl;
这至少会给你平台的名称。我不确定您所说的“输出文件夹”是什么意思,所以我不确定您之后需要做什么。
【讨论】:
部分 linux 系统将支持lsb_release
【讨论】: