社区
Linux/Unix社区
帖子详情
请问在linux下如何判断当前系统是32bit还是64bit
wabc
2004-08-18 10:20:16
在C语言中需要在运行时判断当前系统的架构:32bit/64bit,不知道如何判断.
...全文
402
15
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
15 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ruyedian
2004-10-19
学习
打赏
举报
回复
赞
wabc
2004-10-18
Way79(Way)的方法在某些情况下并不能准确判断系统类型,因为需要编写跨平台C语言程序,所以还必须考虑以下情况:32位的程序可以在64位的系统下运行,我们就不能使用编译时(Compile-time)检测方法,而必须使用运行时(run-time)检测方法.
其实用uname就可以实现运行时检测,多数UNIX/LINUX系统也提供了该C语言库函数.
多谢各位.
打赏
举报
回复
赞
yjf7888
2004-08-23
在(伪)64位系统下,指针也可以用编译器选项强制指定为32位的。我觉得应该判断long的字节数。
打赏
举报
回复
赞
pacman2000
2004-08-23
另外:long是64位的。
打赏
举报
回复
赞
cvsuser
2004-08-23
判断一个指针占几个字节,
4 个 32位
8 个 64位
========================================
感觉Way79的答案接近正解
打赏
举报
回复
赞
flyinghawkren
2004-08-23
感觉Way79的答案接近正解
打赏
举报
回复
赞
Letbeger
2004-08-23
up
打赏
举报
回复
赞
xqg1130
2004-08-21
我也想要答案,幫樓主頂一下!!
打赏
举报
回复
赞
collide
2004-08-20
32/64的区别之一是指针的长度从32转变到64位,所以,我赞同Way79的方法。
打赏
举报
回复
赞
Way79
2004-08-20
and you should take care of the 64x32 cross compile
打赏
举报
回复
赞
Way79
2004-08-20
In C:
#define IS64BIT (sizeof(void*)==8)
打赏
举报
回复
赞
Way79
2004-08-20
please use "uname -m"
The result will be x86_64 on AMD Opteron and be ia64 on Intel Itanium
打赏
举报
回复
赞
wabc
2004-08-20
up
打赏
举报
回复
赞
wabc
2004-08-18
上面的程序还有一个错误是,int类型无论在32位还是在64位,都是32位的.
我的程序在32上编译,但可以在64位上运行,在某些情况在需要检测系统架构.
打赏
举报
回复
赞
sivaaeik
2004-08-18
你这样看行不行
if (sizeof(int) == 4) {
//32位
}
else if (sizeof(int) == 8) {
//64位
}
else {
//重大发现
}
//不过这样实际上在编译的时候就确定了是32还是64位
//这样的程序实际上没有用,应为64位的x86程序肯定不能在64位的SPARC上运行
打赏
举报
回复
赞
相关推荐
Linux
中如何辨别
当前
所安装jdk是
32
位
还是
64
位
使用 java -version 即可。 如果是安装了
32
位的jdk,则输出信息如
下
:java version "1.8.0_144" ...Java HotSpot(TM) Server VM (build 25.144-b01, mixed mode)上面的输出信息中没包含
64
bit
。如果是安
JDK
32
bit
与
64
bit
的区别
在
进行Minecraft也就是所谓的我的世界游戏的时候,
在
对局域网进行开放的时候,我的是
64
bit
的JDK,而我同学的是
32
bit
的JDK,所以
在
进行局域网链接的时候就会出现Internal Exception:java.lang.NullPointerException ...
32
bit
和
64
bit
系统
的区别
32
位和
64
位
系统
在
计算机领域中常常提及,但是仍然很多人不知道
32
位和
64
位的区别,所以本人
在
网上整理了一些资料,并希望可以与大家一起分享。对于
32
位和
64
位之分,本文将分别从处理器,操作
系统
,JVM进行讲解。 IA...
中标麒麟V7
64
bit
配置 Qt
32
/
64
bit
中标麒麟 / CentOS 7
64
bit
安装 Qt-
32
bit
编译环境
Linux
/Android ARM
64
bit
/
32
bit
编程移植
32
bit
user @
64
bit
kernel l Use compat_ioctl( ) but not only unlock_ioctl() in kernel driver lcompat_ioctl( ) : 支持
64
bit
的driver必须要实现的ioctl,当有
32
bit
的userspace application call
64
bit
...
发帖
Linux/Unix社区
微信扫一扫
点击复制链接
分享社区
下载分享明细
2.2w+
社区成员
7.4w+
社区内容
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
帖子事件
创建了帖子
2004-08-18 10:20
社区公告
暂无公告