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;
}

执行结果

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

Ubuntu的命令查看方法

uname -a

结果

说明

i386、i686代表是32bit机器

x86_64代表64bit机器

疑问

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/462f0b9f6a7c6cd79b4c608fe756af22.html