机器大小 64 或 32 位

Posted

技术标签:

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

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

【问题讨论】:

检查指针的大小(如果您的语言可用)。更具体。 【参考方案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 模式,请查看 lscpu 或 another 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__

【讨论】:

以上是关于机器大小 64 或 32 位的主要内容,如果未能解决你的问题,请参考以下文章

在 64 位机器上 QWORD 的大小是多少?

32 位和 64 位 Windows 服务器上 JVM 的最大堆大小

深入理解计算机系统 第二章要点

32 位和 64 位版本的 windows 操作系统的页面大小是多少?

什么是 16、32 和 64 位架构?

在 64 位上调整 std::vector 大小的 bad_alloc 错误。它似乎将其限制为 32 位