【问题标题】:Find the unix platform name查找 unix 平台名称
【发布时间】:2010-10-08 03:39:48
【问题描述】:

我希望能够根据平台名称确定输出文件夹:AS3、AS4、AS5、SUN。

我不知道如何从系统中提取平台名称。我尝试过:

uname -a

file /bin/bash

谢谢

解决方案

./lsb_release -a

向保罗·迪克森致敬

【问题讨论】:

  • 它是根据一些标准手动导出的,在这种情况下我不能使用。我认为AS3等是标准的,可以根据系统的特性来确定。谢谢

标签: c++ linux bash


【解决方案1】:

在过去(甚至在 Linux 之前)我发现 /bin/arch 在 Unix 系统中相当普遍,并且对于获取有关您的硬件平台的一些信息很有用。 (在 Linux 上,它返回的结果与 uname -m 相同)。

【讨论】:

    【解决方案2】:

    看起来您想要(至少部分)发布号。在 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

    等等

    【讨论】:

      【解决方案3】:

      我认为您必须查看每个操作系统的特定文件。例如,在 SunOS 上,您可以键入:

      uname -s -r -v
      

      对于 RHEL,请查看 /etc/issue

      【讨论】:

        【解决方案4】:

        您可以包含 sys/utsname.h 以获取 Unix 平台上的操作系统信息。

        struct utsname buf;
        uname(&buf);
        cout << buf.sysname << endl;
        

        这至少会给你平台的名称。我不确定您所说的“输出文件夹”是什么意思,所以我不确定您之后需要做什么。

        【讨论】:

        • 它打印 Linux,我需要它来打印 AS3 或 AS4 或 AS5 —— 有办法确定吗?谢谢
        【解决方案5】:

        部分 linux 系统将支持lsb_release

        【讨论】:

          猜你喜欢
          • 2015-01-15
          • 2021-11-24
          • 1970-01-01
          • 1970-01-01
          • 2017-10-19
          • 1970-01-01
          • 2016-08-18
          • 1970-01-01
          • 2023-03-21
          相关资源
          最近更新 更多