免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 28230 | 回复: 63
打印 上一主题 下一主题

请问怎么用程序判断cpu是32位的还是64位的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-21 19:36 |只看该作者 |倒序浏览
如题

论坛徽章:
0
2 [报告]
发表于 2009-10-21 19:38 |只看该作者
安装x64的Ubuntu试试看行不行。

论坛徽章:
0
3 [报告]
发表于 2009-10-21 20:38 |只看该作者
0.  uname -a
1.  getconf LONG_BIT
2.  cat /usr/include/asm/cpufeature.h
.......

论坛徽章:
0
4 [报告]
发表于 2009-10-21 23:03 |只看该作者
程序编译的时候,已经决定了能运行的CPU的数量,例如x86下的程序不能在mips CPU运行,mips程序不能在arm CPU运行
x86_64 的程序不能在x86的CPU下运行,但x86的程序可以同时在x86和x86_64的CPU下运行,这是可以使用cpuid指令来判断。

如果是在虚拟机,或者类似虚拟机(例如安腾平台下跑的x86程序)下酒没办法了

如果是x86_64平台下装32位操作系统,使用uname, getconf, cat /usr/include/xxx 等方法不能得到CPU的正确信息

论坛徽章:
0
5 [报告]
发表于 2009-10-21 23:23 |只看该作者
就直接在机器上装64位系统,32位机肯定装不上。
/usr/include/xxx纯属扯淡
别扯什么虚拟化了,分清模拟器的概念吧,龙芯3模拟x86谁知道能不能模拟x64啊。

论坛徽章:
0
6 [报告]
发表于 2009-10-22 07:42 |只看该作者
瓜娃。。。。。。

论坛徽章:
0
7 [报告]
发表于 2009-10-22 18:11 |只看该作者
是否可以通过sizeof(int)得到呢

论坛徽章:
0
8 [报告]
发表于 2009-10-22 18:59 |只看该作者

指针长度*8比较保险

char *p;
len=sizeof(p)*8;

论坛徽章:
0
9 [报告]
发表于 2009-10-22 19:54 |只看该作者
long的长度都是扯淡,不懂就不要装B了,在x64的机器上装32位系统打印long的长度能看出来个毛。
uname -a有多少关于CPU的信息?不过是cpuifo指令而已,用过cpuinfo这条指令的人都不会想出这么SB的办法。
/usr/include/asm/cpufeature.h 更是SB,那是源代码,不是实际跑的代码。

实践是检验真理的唯一标准,Intel说是64位就是64位?其实地址线还是40位/52位的?
装B,继续装B,你Y的不懂就趁早滚蛋,别在这儿误导人 在技术版,没人尊重你,你Y可以跟自己的员工装B,人家不敢得罪你是因为你Y的钱,在bbs上,装B有个毛用啊,还不如练习一下cpuinfo指令怎么用再出来装B呢。
越是掩饰,就越是显示无知,无知者无畏呵。

在x64的机器上装一个32位系统打印一下long的长度去,多找几个64位和32位系统看看uname -a的结果去,/usr/include/asm/cpufeature.h这种SB想法就不用出来扯淡了,在x64的机器上装32位的系统,OS怎么会使用64位的资源?用64位寄存器么?

别扯没用的,有什么本事亮出来,装B的假大空是孙子。

[ 本帖最后由 prolj 于 2009-10-22 20:09 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-10-22 21:03 |只看该作者
我喜欢游荡于装A与装C之间。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP