社区
Linux/Unix社区
帖子详情
请问在linux下如何判断当前系统是32bit还是64bit
wabc
2004-08-18 10:20:16
在C语言中需要在运行时判断当前系统的架构:32bit/64bit,不知道如何判断.
...全文
511
15
打赏
收藏
请问在linux下如何判断当前系统是32bit还是64bit
在C语言中需要在运行时判断当前系统的架构:32bit/64bit,不知道如何判断.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
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上运行
git官网下载最新版本
这是一个git工具软件,是在官网下载的最新版本,下载即可使用。
【
Linux
】查看
Linux
系统
是
32
位还是
64
位的方法
背景 下载很多
Linux
软件时需要知道自己
系统
是
32
位还是
64
位的,本文提供两种查看
Linux
系统
是多少位的方法。 方法一 输入以下命令: getconf LONG_
BIT
如果输出
32
就是
32
位,
64
就是
64
位。如下图所示,就是
64
位: 方法二 输入以下命令: uname -a 输出结果中如果有x86_
64
就是
64
位的,没有就是
32
位的。如下图所示,就是
64
位: 参考 https://blog.csdn.net/u013991521/article/details/78289901 https://
linux
c/c++ 区分
系统
是
32
位还是
64
位
方法一: #if __WORDSIZE ==
64
#else #endif __WORDSIZE定义在#include <
bit
s/wordsize.h>中,表示计算机
系统
是几位的。 方法二: #include <stdio.h> int main(int argc ,char* argv) { #ifdef __x86_
64
__ ...
linux
32
bit
改为
64
bit
问题
32
bit
-
64
bit
porting work注意事项
64
位服务器逐步普及,各条产品线对
64
位升级的需求也不断加大。在本文中,主要讨论向
64
位平台移植现有
32
位代码时,应注意的一些细小问题。 什么样的程序需要升级到
64
位? 理论上说,
64
位的操作
系统
,对
32
位的程序具有良好的兼容性,即使全部换成
64
位平台,依然可以良好的运行
32
位的程序。因此,许多目前在
32
位平台上运行良好的程序
如何
判断
操作
系统
是
32
位还是
64
位?
64
位机器可以运行
32
/
64
位操作
系统
,而
32
位机器只能运行
32
位操作
系统
,这样就有一个问题,对于一个
64
位机器,如何
判断
操作
系统
究竟是
32
位还是
64
位呢? 总结了一下,基本方法如下:1.
linux
:#file /sbin/init/sbin/init: ELF ;
32
-
bit
; LSB executable, Intel 80386......2.hpux:#getconf KERNEL_B
Linux/Unix社区
23,225
社区成员
74,537
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章