给你一个 Linux 系统,如何判断它的位数?
我经常用的,有这么几种方式。
第一个,使用命令:
uname -m。
uname命令在 Linux 中用于显示与操作系统内核相关的信息,加上 -m 可以显示处理器的架构名称。
比如 x86_64,表示的是 64 位处理器,i686 表示的是 32 位处理器。
从处理器架构可以间接的判断操作系统的位数,不过这个也只能作为参考。
有些系统做了特殊配置或者虚拟化技术等等,这个方法就不行。
第二个,使用:
getconf LONG_BIT
命令,这个命令专门用于获取操作系统的位数,在大多数情况下,得到的结果都是没问题的。
第三个,通过写代码来判断。
#include#include // 包含_WORDSIZE宏定义的头文件 int main() { #if defined (__WORDSIZE) && __WORDSIZE == 32 printf("32-bit system "); #elif defined (__WORDSIZE) && __WORDSIZE == 64 printf("64-bit system "); #else printf("Waring: Unable to determine system bitness! "); #endif return 0; }
在这个头文件中,有个宏定义叫 WORDSIZE,数值要么是 32 要么是 64,用过这个宏定义也能判断出系统的位数。
当然,也有同学会通过 long 类型的长度来判断,long 类型在 32 位系统一般占 4 字节,在 64 系统一般占 8 字节。不过这也跟编译器有关系,也不排除 64 位系统占 4 字节的情况。
关于判断操作系统的位数,还有哪些方法,欢迎在评论区交流。
全部0条评论
快来发表一下你的评论吧 !