【问题标题】:size of machine 64 or 32 bit机器大小 64 或 32 位
【发布时间】:2011-02-05 18:57:42
【问题描述】:

如果我在 Unix 机器上工作,我怎么知道机器的大小是 64 位还是 32 位机器?

【问题讨论】:

  • 检查指针的大小(如果您的语言可用)。更具体。

标签: unix


【解决方案1】:

AIX 你可以这样做:

getconf KERNEL_BITMODE

HP-UX 你可以这样做:

getconf KERNEL_BITS

或者只是:

getconf -a | grep KERN

Sun Solaris 你可以这样做:

isainfo -v

对于 Linux,是的,uname -a 应该可以解决问题

【讨论】:

  • 因为我正在处理 hp...getconf -a 不工作...但 getconf KERNEL_BITS 工作正常。
  • 安卓 ? :D ...我设法安装LinuxOnAndroid(根设备)和getconf -a | grep KERN 什么也不返回 :( 还有 uname -m,或者 arch 返回 armv71
  • 这些命令只显示安装的内核位大小模式。对于可能的 CPU 模式,请查看 lscpuanother question's answer
【解决方案2】:

你可以输入

uname -m 

如果出现 i686 或 i386,您使用的是 32 位 如果出现 X86_64,则说明您使用的是 64 位

【讨论】:

    【解决方案3】:

    我必须处理很多 Unix 平台,通常我发现的最好方法是查看“uname -a”的输出。例如,如果您在输出中看到类似“i686 i686 i386 GNU/Linux”的内容,您就知道这是一台 32 位机器。如果“amd64”显示它是 64。有时这是尝试运行 64 位程序的问题。有时是 RTFM。

    【讨论】:

      【解决方案4】:

      如果您只是想检查您所在机器的架构,

        %> uname -a
      

      从命令行的输出中通常包含一个指示。

      【讨论】:

        【解决方案5】:

        你也可以试试sizeof(int *)。在 32 位机器上应该是 4,在 64 位机器上应该是 8。

        【讨论】:

        • 我没有理由不能在 64 位计算机上定位 32 位可执行文件。在我工作的地方,我们没有费心将一些应用程序更改为 64 位(尽管有些应用程序占用了千兆字节的内存,并且需要在 64 位机器上运行)。
        【解决方案6】:

        假设您想在编译时执行此操作 - 请查看 here 以了解您可以测试的架构宏。您可能正在寻找__x86_64__

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-16
          • 2012-10-26
          • 1970-01-01
          • 2011-01-28
          • 1970-01-01
          相关资源
          最近更新 更多