C语言判断Ubuntu是32bit还是64bit


前言

今天在运维工作时候,突然忘记查看Ubuntu系统是32bit还是64bit的命令,于是想到了用c语言写个小程序进行判断,感觉挺有意思的,记录一下

c语言方法

思路

  • 在32bit的机器里,内存地址用32bit标识
  • 在64bit的机器里,内存地址用64bit标识
  • 因此,我们可以打印指针的字节数*8不就是cpu的位数了

代码

#include <stdio.h>
#include <stdlib.h>

int main()
{
 char *p;

 printf("cpu的位数: %d\n", 8 * sizeof(p));

 return 0;
}

执行结果

Ubuntu的命令查看方法

uname -a

结果

说明

i386、i686代表是32bit机器

x86_64代表64bit机器

疑问

一年半之前考研的时候复习过操作系统,现在基本上忘光了,不知道cpu的位数和指针的大小是否可以这么进行关联,如果我理解错误,多谢各位朋友留言指出哈,有交流才有进步!

相关内容