前言
今天在运维工作时候,突然忘记查看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;
}
执行结果
![](https://img-my.csdn.net/uploads/201301/22/1358862117_1565.png)
ubuntu的命令查看
方法
uname -a
结果
![](https://img-my.csdn.net/uploads/201301/22/1358862192_5457.png)
说明
i386、i686代表是32bit机器
x86_64代表64bit机器
疑问
一年半之前考研的时候复习过操作系统,现在基本上忘光了,不知道cpu的位数和指针的大小是否可以这么进行关联,如果我理解错误,多谢各位朋友留言指出哈,有交流才有进步!