如何判断Linux系统的位数

描述

给你一个 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 字节的情况。

关于判断操作系统的位数,还有哪些方法,欢迎在评论区交流。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分