方法一:getconf LONG_BIT
在linux终端输入getconf LONG_BIT命令
如果是32位机器,则结果为32
[cpp]view plaincopy
- [root@localhost ~]# getconf LONG_BIT
- 32
如果是64位机器,则结果为64
[cpp]view plaincopy
- [root@localhost ~]# getconf LONG_BIT
- 64
方法二:uname -a
如果是64位机器,会输出x86_64
[cpp]view plaincopy
- [chenzhou@testweb01 ~]$ uname -a
- Linux testweb01 2.6.18-308.4.1.el5 #1 SMP Tue Apr 17 17:08:00 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
可以看到,uname-a执行后的结果中输出了x86_64,说明该机器是64位的,否则代表该机器是32位的
[cpp]view plaincopy
- [root@localhost ~]# uname -a
- Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
方法三:file /sbin/init 或者 file /bin/ls
示例:32位机器
file /sbin/init
[cpp]view plaincopy
- [root@localhost ~]# file /sbin/init
- /sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),forGNU/Linux 2.6.9, dynamically linked (uses shared libs),forGNU/Linux 2.6.9, stripped
file /bin/ls
[cpp]view plaincopy
- [root@localhost ~]# file /bin/ls
- /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),forGNU/Linux 2.6.9, dynamically linked (uses shared libs),forGNU/Linux 2.6.9, stripped
示例:64位机器
file /sbin/init
[cpp]view plaincopy
- [chenzhou@testweb01 ~]$ file /sbin/init
- /sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV),forGNU/Linux 2.6.9, dynamically linked (uses shared libs),forGNU/Linux 2.6.9, stripped
file /bin/ls
[cpp]view plaincopy
- [chenzhou@testweb01 ~]$ file /bin/ls
- /bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV),forGNU/Linux 2.6.9, dynamically linked (uses shared libs),forGNU/Linux 2.6.9, stripped
可以通过命令结果中的64-bit或者32-bit来判断该机器是64位还是32位
分享一份C++大咖的资料!
C++资料免费送