【发布时间】:2011-02-05 18:57:42
【问题描述】:
如果我在 Unix 机器上工作,我怎么知道机器的大小是 64 位还是 32 位机器?
【问题讨论】:
-
检查指针的大小(如果您的语言可用)。更具体。
标签: unix
如果我在 Unix 机器上工作,我怎么知道机器的大小是 64 位还是 32 位机器?
【问题讨论】:
标签: unix
AIX 你可以这样做:
getconf KERNEL_BITMODE
HP-UX 你可以这样做:
getconf KERNEL_BITS
或者只是:
getconf -a | grep KERN
Sun Solaris 你可以这样做:
isainfo -v
对于 Linux,是的,uname -a 应该可以解决问题
【讨论】:
lscpu 或 another question's answer。
你可以输入
uname -m
如果出现 i686 或 i386,您使用的是 32 位 如果出现 X86_64,则说明您使用的是 64 位
【讨论】:
我必须处理很多 Unix 平台,通常我发现的最好方法是查看“uname -a”的输出。例如,如果您在输出中看到类似“i686 i686 i386 GNU/Linux”的内容,您就知道这是一台 32 位机器。如果“amd64”显示它是 64。有时这是尝试运行 64 位程序的问题。有时是 RTFM。
【讨论】:
如果您只是想检查您所在机器的架构,
%> uname -a
从命令行的输出中通常包含一个指示。
【讨论】:
你也可以试试sizeof(int *)。在 32 位机器上应该是 4,在 64 位机器上应该是 8。
【讨论】:
假设您想在编译时执行此操作 - 请查看 here 以了解您可以测试的架构宏。您可能正在寻找__x86_64__。
【讨论】: