如何判断Unix系统的一个库文件是32位还是64位的
如何判断Unix系统的一个库文件是32位还是64位的
某些时候,我们需要知道操作系统的位数,或者配置插件的时候需要知道主程序的位数(例如配置apache插件的时候需要知道apache的位数以便配置相应的插件),最简单的办法就是执行file命令,如:
file 命令
Linux:
# file libnss1_files-2.2.4.so
libnss1_files-2.2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped
# file libtrsbean.so
libtrsbean.so: ELF 64-bit LSB shared object, version 1, not stripped
AIX:
32位的没有说明
#file /usr/ccs/lib/mcrt0.o
/usr/ccs/lib/mcrt0.o: executable (RISC System/6000) or object module not stripped
#file /usr/ccs/lib/mcrt0_64.o
/usr/ccs/lib/mcrt0_64.o: 64-bit XCOFF executable or object module not stripped
Solaris:
# file libmp.so
libmp.so: ELF 32-位 MSB 动态库 SPARC 版本 1,动态链接,没有除去
od 命令
另外通过二进制查看命令od查看相关的库文件也可以解决此问题,但难度大,也不保险。下面给出在不同系统中的结果,以供参考(由于只在某一版本的操作系统下面做的测试,下面的结果不可能适应所有的所有版本的系统)
Linux
32位第4段是0101;64位第4段是0102 。-h 表示按16进制2字节整数查看,整数高低位也调整了(如7f45变成457f); -N 10 表示查看10个字节。
#od -h -N 10 32.so
0000000 457f 464c 0101 0001 0000
#od -h -N 10 64.so
0000000 457f 464c 0102 0001 0000
Solaris
和Linux差不多,只是Linux的 -h 参数变成 -x。另外显示结果也不太一样,Solaris是按照字节顺序显示的,Linux是按照16进制2字节整数查看,会把高低位调整了。
#od -x -N 10 32.so
0000000 7f45 4c46 0101 0100 0000
#od -x -N 10 64.so
0000000 7f45 4c46 0102 0100 0000
AIX
32位是01df ;64位是01f7
#od -N 10 -h crt0_r.o
0000000 01df 0003 3d65 462a 0000
#od -N 10 -h mcrt0_64.o
0000000 01f7 0003 3fe2 7fd5 0000
HP Unix
没有实际操作,只是通过UltraEdit打开两个文件xxx32.sl和xxx64.sl并比较前面几个字节(HP库文件是.sl结尾不是.so结尾的)。发现64位的文件和Linux/Solaris的类似。
02 10 01 0e 05 12 40
7f 45 4c 46 02 02 01
原文发布时间:2015-04-17
本文来自云栖合作伙伴“linux中国”
如何判断Unix系统的一个库文件是32位还是64位的相关推荐
- Android系统判断CPU是32位还是64位
Android系统判断CPU是32位还是64位 一.方法一,读取"/proc/cpuinfo"文件的第一行. 1.32bit 2.64bit 二.方法二,读取Android 的sy ...
- c语言程序判断32位还是64位,c++ 判断是64位还是32位系统的实例
1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProces ...
- 编写程序创建一个通讯录文件,在其中存入10位同学的姓名、年龄、电话号码,并在屏幕上输出第2、4、6、8、10位同学的信息
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 8.编写程序创建一个通讯录文件,在其中存入10位同学的姓名.年龄.电话号码,并在屏幕上 ...
- Linux 系统如何查看文件是32位还是64位?
在日常工作中,经常需要查看文件是32位还64位,下面一个命令可以查看: file filename
- 电脑系统32位和64位有哪些区别?32位和64位是什么意思 ?
我们在安装系统的时候,需要了解的东西太多了,比如选择系统的话你首先要了解是选择32位还是64位系统呢?然后还需要判断电脑适合32位还是64位系统?这些问题要折腾清楚之后才能更好的进行安装,今天带大家了 ...
- 判断当前Windows XP操作系统是32位还是64位的方法
昨天在调查怎样区分Windows XP32位和64位的问题,在网上找了一下,大家常用的有两种方法. 方法一.通过指针来判断. 在32位操作系统上指针长是4个字节,而在64位系统上指针为8个字节. 方法 ...
- 台式计算机32位和64位的区别,电脑系统32位和64位有哪些区别 32位和64位是什么意思 【详解】...
我们在安装系统的时候,需要了解的东西太多了,比如选择系统的话你首先要了解是选择32位还是64位系统呢?然后还需要判断电脑适合32位还是64位系统?这些问题要折腾清楚之后才能更好的进行安装,今天小编带大 ...
- 判断oracle客户端是32还是64,64位-如何知道已安装的Oracle Client是32位还是64位?
64位-如何知道已安装的Oracle Client是32位还是64位? 操作系统:Windows 2008 Server R2 Oracle客户端:11.2 非常感谢 8个解决方案 73 votes ...
- 编译并使用boost库(win7+boost1.63+vs2015+32位or 64位)
博客 学院 下载 GitChat 论坛 问答 商城 VIP 活动 招聘 ITeye 码云 CSTO 写博客 发Chat 编译并使用boost库(win7+boost1.63+vs2015+32位or ...
最新文章
- socket 获取回传信息_Luat系列官方教程5:Socket代码详解
- python3网络爬虫(4):python3安装Scrapy
- css响应式网格布局生成器_如何使用网格布局模块使用纯CSS创建响应表
- windows系统c++多线程开发
- SSM框架笔记12:Spring JdbcTemplate
- mysql闩_Oracle闩:Cache Buffers chains
- Bailian2750 鸡兔同笼【入门】
- 【java笔记】自定义异常
- [最小生成树] 继续畅通工程
- 企业如何培养新型员工队伍
- FTP内网穿透 报错 200 227 451 注意事项
- Excel教程:这三个excel筛选技巧,你肯定没用过 -Excel入门
- org.apache.ibatis.builder.IncompleteElementException:Could not find result map cn.lyp.entity.Book
- 零基础GitHub入门教程
- wstmart不错。可以用用
- 手风琴几排簧好_手风琴三排簧和四排簧的区别
- 期货开户交易交易风格各异
- web应用测试的具体流程(等保测评相关)
- [转帖]Windows7/2008中批量删除隧道适配器的方法
- creo学习笔记:creo工程图转cad比例问题