对象文件格式分析
WIS测井数据中流对象解析及格式转换
石油地质与工程2021年5月PETROLEUM GEOLOGY AND ENGINEERING 第35卷第3期文章编号:1673–8217(2021)03–0041–03WIS测井数据中流对象解析及格式转换彭博1,2,谭成仟1,2,张奔1,2,孙遥1,2,杨泽1,2(1.西安石油大学地球科学与工程学院,陕西西安710065;2.陕西省油气成藏地质学重点实验室,陕西西安710065)摘要:为了解决Forward测井解释平台中的测井格式转换器不能从WIS数据文件中批量获取解释成果表,且手动获取后只能保存为ASCII格式文档,不利于获取层位、起始深度、终止深度、解释结论、特征数值及相应的曲线数据等问题,通过分析WIS数据文件的数据格式,利用Visual Basic 6.0语言编写了一款软件,能够实现从多个WIS文件中批量获取解释成果表,并将ASCII格式的解释成果表转换为EXCEL格式,同时可将所有井的解释成果表保存到一张EXCEL表格中。
此软件极大地方便了科研工作者,能显著缩短项目的开发周期、节省人力和时间、提高数据处理的正确率。
关键词:WIS数据;Forward;流对象;测井数据;格式转换;Visual Basic 6.0中图分类号:P631.84 文献标识码:AStream object analysis and format conversion in WIS data of well loggingPENG Bo1, 2, TAN Chengqian1, 2, ZHANG Ben1, 2, SUN Yao1, 2, YANG Ze1, 2(1. School of Earth Sciences and Engineering, Xi'an Shiyou University, Xi'an, Shaanxi 710065, China; 2. Key Laboratory of Oil and Gas Accumulation Geology in Shaanxi Province, Xi'an, Shaanxi 710065, China) Abstract: Acquiring the interpretation result table from WIS data file with the format converter in Forward logging interpretation platform, every time it can only manually form a WIS file parsing out the interpretation result table, each well is corresponded to an ASCII format document, the data format in the document is not conducive to obtain horizon, starting depth, ending depth, interpretation conclusion, average characteristic value and corresponding curve data. In order to solve the problem, after analyzing how WIS format data is stored, writer wrote a software with Visual Basic 6.0 for explaining results tables from multiple WIS files, the ASCII format of the results tables is converted to the EXCEL format, the interpretation results in EXCEL format for all wells are saved in an EXCEL spreadsheet. This software can shorten the project development cycle, save manpower and time, and improve the accuracy of data processing.Key words: WIS data; Forward; stream object; logging data; format conversion; Visual Basic 6.0Forward平台采用WellBase(Well Basic Analysis System Environment)作为数据底层,即WIS数据,国内大量的测井数据以WIS格式存放、处理和解释。
PDF的文件结构及格式特点
PDF的文件结构及格式特点PDF的文件结构及格式特点2010-04-15 12:50PDF(Portable Document Format)由Adobe公司所开发,是一种不论用何种类型的计算机均可阅读的文件格式。
PDF文件包含一个PDF文档和其它支持数据。
一个PDF文档包含一个或多个页面,每个页面包含与设备和分辨率无关的文字、图形和图像的任意组合,被称为页面描述。
文档还可以包含一些只有在电子读物中才存在的信息,如超文本链接、声音和动画等。
除了PDF文档之外,PDF文件中还包含一些其它信息,如:文件中使用的PDF规范的版本号,文件中重要结构的位置。
为了更好地理解PDF文件,可把PDF文件分解成四个部分。
第一部分是PDF的对象,PDF 的对象是一组基本对象类型。
这些类型绝大部分与Posts cript语言使用的数据类型对应。
PDF支持很多种基本的数据类型:布尔型、数字、字符串、字面名、数组、字典和流,另外还有一种空对象。
在PDF文件中,经常给一些对象赋予一个标签供其它对象调用,这种有标签的对象称为间接对象。
第二部分是PDF的文件结构。
PDF的文件结构决定了对象在PDF文件中的存储方式、访问方式和更新方式。
后面将详细分析。
第三部分是PDF的文档结构。
PDF的文档结构指定了怎样用基本对象类型来表示PDF的文档成分,包括:页面、注解、超文本链接、字体等。
第四部分是PDF的页面描述。
页面描述指的是页面上包含的与设备和分辨率无关的文字、图形和图像的任意组合。
PDF的页面描述可不依赖于PDF的其它部分而被单独地解释。
1、PDF的文件结构PDF的文件结构(即物理结构)包括四个部分:文件头、文件体、交叉引用表和文件尾。
文件头指明了该文件所遵从的PDF规范的版本号。
它出现在PDF文件的第一行。
如%PDF-1.2,表示该文件符合PDF-1.2规范。
文件体由一系列的PDF间接对象(inDirectob Ject)组成。
编程调试常用文件格式
编程调试常用文件格式
在编程和调试过程中,经常需要处理和保存各种文件格式。
以下是一些常用的文件格式:
源代码文件:如 .cpp, .java, .py, .rb 等,这些是编程语言的标准源代码文件。
编译输出文件:如 .o (对象文件) 和 .obj (Microsoft的Object文件),这些是编译器从源代码文件生成的中间文件。
可执行文件:如 .exe (Windows), .out (Unix-like系统),这些是编译完成后的可执行文件。
调试信息文件:如.pdb (Microsoft的Program Database) 和.elf (Executable and Linkable Format),这些文件中包含有关程序结构和变量的信息,对于调试非常有用。
日志文件:如 .log, .txt 等,这些用于记录程序运行时的信息,方便分析和排查问题。
配置文件:如 .ini, .json, .xml 等,这些用于存储程序的配置信息。
数据文件:如 .csv, .xlsx, .json 等,这些用于存储程序运行所需的数据。
二进制文件:如 .bin, .dat 等,这些可以是编译后的二进制数据,也可以是其他格式的数据。
图像文件:如 .png, .jpg, .bmp 等,这些用于存储图像数据。
音频和视频文件:如 .mp3, .wav, .mp4 等,这些用于存储音频和视频数据。
在调试过程中,可能还需要其他特定格式的文件,如符号文件(用于源代码级别的调试)等。
COFF文件格式
COFF文件格式简介COFF:Common Object File FormatCOFF(通用对象文件格式)是一种很流行的对象文件格式(注意:这里不说它是“目标”文件,是为了和编译器产生的目标文件(*.o/*.obj)相区别,因为这种格式不只用于目标文件,库文件、可执行文件也经常是这种格式)。
VC 所产生的目标文件(*.obj)就是这种格式。
其它的编译器,如GCC (GNU Compiler Collection)、ICL(Intel C/C++ Compiler)、VectorC,也使用这种格式的目标文件。
不仅仅是C/C++,很多其它语言也使用这种格式的对象文件。
统一格式的目标文件为混合语言编程带来了极大的方便。
当然,并不是只有这一种对象文件格式。
常用格式的还有OMF-对象模型文件(Object Module File)以及ELF-可执行及连接文件格式(Executable and Linking Format)。
OMF是一大群IT巨头在n年制定的一种格式,在Windows平台上很常见。
大家喜欢的Borland公司现在使用的目标文件就是这种格式。
MS和Intel在n年前用的也是这种格式,现在都改投异侧,用COFF格式了。
ELF 格式在非Windows平台上使用得比较多,在Windows平台基本上没见过。
做为程序员,很有必要认识一下这些你经常打交道的家伙!不过这次让我介绍COFF先!在COFF文件格式中,偏移COFF文件格式整体结构图点,不过还算它的设计者有点远见。
可扩充性设计得不错,以致于沿用至今。
了解了文件的整体结构,现在让我们来逐个段落分析它。
COFF文件一共有8种数据,自上而下分别为:1. 文件头(File Header)2. 可选头(Optional Header)3. 段落头(Section Header)4. 段落数据(Section Data)5. 重定位表(Relocation Directives)6. 行号表(Line Numbers)7. 符号表(Symbol Table)8. 字符串表(String Table)COFF 文件头typedef struct _IMAGE_FILE_HEADER{WORD Machine; //WORD NumberOfSections; //sectionDWORD TimeDateStamp; //一般是此文档生成的时间DWORD PointerToSymbolTable;//symbol table表的文件偏移地址DWORD NumberOfSymbols; //symbol表个数WORD SizeOfOptionalHeader;//0 no used in obj fileWORD Characteristics; //0 no used in obj file} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;节(节目录节数据)各个段的内容和重定位信息头(这个重定位信息头不一定每个段都有,貌似只有.text段才有,这个不太确定),此部分的偏移地址是由section头指定的。
elf格式文件解析
ELF可执行文件的解析与加载ELF文件格式简介1.1前言ELF-可执行链接格式最初是由UNIX系统实验室(USL)作为应用程序二进制接口(ABI)开发和发行。
工具接口标准委员会TIS已经将ELF作为运行在Intel32位架构之上的各类型操作系统的可导出对象文件格式标准。
ELF标准为开发者提供了一组横跨多运行环境的二进制接口定义来组织软件开发。
1.2对象文件1.2.1 介绍本部分描述了ABI对象文件格式,也称之为ELF。
有三种主要类型的对象文件:1. 可重组(relocatable)文件包含了适合用来链接其他对象文件的代码和数据,从而创建出可执行或可共享的对象文件;2. 可执行(executable)文件包含了用于执行的程序,该文件规定了exec如何创建一个程序的进程映像;3. 可共享对象(shared object)文件包含了用来在两个上下文之间链接的代码和数据。
首先,链接器ld将该文件和其他的可重组文件或可共享对象文件进行处理后,创建出新对象文件,其次,动态链接器将该新对象文件与可执行文件或共享对象组合,来共同创建一个进程映像;经过汇编器以及链接器创建成的对象文件,其是在处理器上可直接执行的程序的二进制代表。
本部分主要描述文件格式以及其如何用来构建程序。
后一部分也描述了对象文件,集中在程序执行所必须的信息上。
1.2.1.1 文件格式在程序链接和程序执行过程都涉及到对象文件。
出于方便和效率,对象文件格式图从链接和运行两个视角来展示文件的内容。
ELF header位于文件的开始处,其用来描述文件的组织结构。
Section包含了大量的对象文件信息,从链接的视角来看就是指令、数据、符号表、重组信息等等。
Segment和Program是从程序执行视角来观看的,这将在下部分讲解。
如果存在Program Header table的话,其将告诉操作系统如何创建进程映像。
用来创建进程映像(执行程序)的文件必须包含program header table。
WordXML格式初步分析
WordXML格式初步分析前⾔Office2003以上,Word可以以XML⽂本格式存储,这样就可以使⽤外部程序创建Word⽂件,⽽不需要使⽤Word的对象。
也能够⾃由的打开分析Word⽂件,或者发布到⾃⼰的Web页⾯,或者其他更多应⽤。
⼀个典型的WordXML结构可以是如下的样⼦:<?xml version="1.0"?><w:wordDocument xmlns:w="/office/word/2003/wordml"><w:body><w:p><w:r><w:t>Hello, World.</w:t></w:r></w:p></w:body></w:wordDocument>可以⽤记事本创建⼀个⽂件,将上⾯的XML内容粘贴,并保存为helloworld.xml,在Office Word中打开它,就能看到如上图所⽰的内容。
这是最简单的WordXML内容,它包括这⼏部分:XML的声明和名称空间的指明:<?xml version="1.0"?><w:wordDocument xmlns:w="/office/word/2003/wordml">⽂档内容<w:body>…</w:body>基本节点类型从body内可以看出,构成实际⽂本内容的有3中类型节点:<w:p> 表⽰⼀个段落<w:r> 表⽰⼀个样式串,指明它包括的⽂本的显⽰样式<w:t> 表⽰真正的⽂本内容如果我们需要指明⼀个⽂本为粗体,需要怎么办呢?<w:r><w:rPr><w:b w:val="on"/></w:rPr><w:t> 2.0C</w:t></w:r><w:b w:val=”on”> 表⽰该格式串种的⽂本为粗体。
10种仿真文件格式介绍 -回复
10种仿真文件格式介绍-回复中括号内的主题是"10种仿真文件格式介绍",下面将为您一步一步详细回答。
第一步:概述仿真文件格式是在进行仿真研究和应用过程中使用的文件格式。
它们可以包含模型参数、初始条件、仿真结果等信息,并且能够方便地与不同的仿真软件进行交互。
在本文中,我们将介绍10种常见的仿真文件格式,并探讨它们的特点和应用领域。
第二步:XML格式(扩展标记语言)XML格式是一种可扩展的标记语言,被广泛用于数据交换和表示。
在仿真领域,XML格式常用于模型描述、参数配置和结果输出。
它的主要优点是结构化、可读性强,并且能够与各种编程语言兼容。
第三步:MATLAB格式MATLAB格式是Matlab软件专用的文件格式,可存储多维数组、模型参数和仿真结果。
它优秀的计算性能和丰富的工具箱使得MATLAB格式在科学计算和仿真领域被广泛应用。
第四步:CSV格式(逗号分隔值)CSV格式是一种常用的表格数据存储格式,将数据以逗号分隔的形式保存在纯文本文件中。
在仿真中,CSV格式常用于存储时间序列数据,如仿真结果。
它具有简单、通用、易于处理的特点,但可能不适合存储复杂的模型描述。
第五步:HDF5格式(层次数据格式)HDF5格式是一种用于存储和管理大规模科学数据的文件格式。
它支持层次结构、多种数据类型和数据压缩,适合存储和共享复杂的仿真模型和结果。
HDF5格式在高性能计算和大规模数据分析等领域有广泛应用。
第六步:VTK格式(可视化工具包文件格式)VTK格式是一种用于可视化和分析科学数据的文件格式。
它能够存储多维数组、网格信息和可视化属性,并提供了丰富的数据处理和可视化算法。
VTK格式在计算机辅助设计、医学图像处理和地球科学等领域被广泛使用。
第七步:STL格式(立体光束层处理)STL格式是一种用于表示三维模型的文件格式,常用于计算机辅助设计和三维打印。
它以三角面片的形式描述模型的几何信息,并可以包含法向量和颜色等属性。
常用文件格式大全
不同的文件,有不同的文件格式,区别这些格式常常是文件名的后缀名不同,现统计常用文件后缀名如下,供大家参考和查阅。
O 对象代码库文件O01 台风声音文件OBD Microsoft Office活页夹OBJ 对象文件OBZ Microsoft Office活页夹向导OCX Microsoft对象链接与嵌入定制控件ODS Microsoft Outlook Express邮箱文件OFF 3D 网状物对象文件格式OFN Microsoft Office FileNew文件OFT Microsoft Outlook模板OKT Oktalyzer音乐模块(MOD)文件OLB OLE对象库OLE OLE对象OOGL 面向对象图形库OPL 组织者编程语言源文件——Psion/SymbianOPO OPL输出可执行文件OPT Microsoft Developer Studio文件OPX OPL扩展DLL(动态链接库)ORA Oracle 7 配置文件ORC Oracle 7脚本文件ORG Lotus Organizer 文件OR2 Lotus Organizer 2 文件OR3 Lotus Organizer 97 文件OSS Microsoft Office查找文件OST Microsoft Exchange / Outlook 离线文件OTL Super NoteTab 模板文件OUT C语言输出文件P 对象代码库文件P3 Primavera Project Planner(工程设计器)文件P10 Tektronix Plot 10 绘图文件P65 PageMaker 6.5文件P7C Digital ID 文件(MIME)PAB Microsoft个人地址簿PAC [请不要讲脏话] Studio Ⅱ包PAK Quake WAD文件PAL 压缩文件PART Go!Zilla部分下载文件PAS Pascal源代码PAT DataCAD Hatch模式文件;CorelDRA W模式;高级Gravis Ultrasound / Forte 技术;碎片文件PBD PowerBuilder动态库,作为本地DLL的一个替代物PBF Turtle Beach的Pinnacle 银行文件PBK Microsoft PhoneBook(电话簿)PBL 用于訶owerBuilder开发环境中的PowerBuilder动态库PBM 可导出位图PBR PowerBuilder资源PCD Kodak Photo-CD映像;P-Code编译器测试脚本,由Microsoft测试与Microsoft Visual测试PCE Maps Eudora邮箱名字的DOS文件名PCL Hewlett-Packard 打印机控制语言文件(打印机备用位图)PCM 声音文件格式;OKI MSM6376 合成芯片PCM格式PCP Symantec Live Update Pro文件PCS PICS动画文件PCT Macintosh PICT籜募?PCX Zsoft PC画笔位图PDB 3Com PalmPilot数据库文件PDD 可以用Paint Shop Pro或其他图像处理软件打开的图形图像PDF Adobe Acrobat可导出文档格式文件(可用Web浏览器显示);Microsoft系统管理服务器包定义文件;NetWare打印机定义文件PDP Broderbund的Print Shop Deluxe文件PDQ Patton&Patton Flowercharting PDQ Lite 文件PDS 摄影图像文件(该文件格式的来源不清楚)PF Aladdin系统对私人文件进行加密的文件PFA 类型1字体(ASCⅡ)PFB 类型1字体(二进制)PFC PF组件PFM 打印机字体尺度PGD 良好隐私(Pretty Good Privacy,PGP)虚拟磁盘文件PGL HP绘图仪绘图文件PGM 可输出灰度图(位图)PGP 用良好隐私(PGP)算法加密文件PH 由Microsoft帮助文件编译器产生的临时文件PHP,PHP3 包含有PHP脚本的HTML网页PHTML 包含有PHP脚本的HTML网页;由Perl分析解释的HTMLPIC PC画图位图;Lotus图片;Macintosh PICT绘图PICT Macintosh PICT图形文件PIF 程序信息文件;IBM PIF绘图文件PIG LucasArts的Dark Forces WAD文件PIN Epic Pinball数据文件PIX 内置系统位图PJ MKS源完整性文件PJX,PJT Microsoft Visual FoxPro工程文件PKG Microsoft Developer Studio应用程序扩展(与DLL文件类似)PKR PGP的公用钥匙环PL Perl程序PLG 由REND386/A VRIL使用的文件格式PLI Oracle 7数据描述PLM Discorder Tracker2模块PLS Disorder Tracker2抽样文件;MPEG PlayList文件(由WinAmp使用)PLT HPGL绘图仪绘图文件;AutoCAD plot绘图文件;Gerber标志制作软件PM5 Pagemaker 5.0文件PM6 Pagemaker 6.0文件PNG 可移植的网络图形位图;Paint Shop Pro浏览器目录PNT,PNTG MacPaint图形文件POG Descent2 PIG文件扩展POL Windows NT策略文件POP Visual dBASE上托文件POT Microsoft Powerpoint模块POV 视频射线跟踪器暂留PP4 Picture Publisher 4位图PPA Microsoft Powerpoint内插器PPF Turtle Beach的Pinnacle程序文件PPM 可移植的象素映射位图PPP Parson Power Publisher;Serif PagePlus桌面出版缺省输出PPS Microsoft Powerpoint幻灯片放映PPT Microsoft Powerpoint演示文稿PQI PowerQuest驱动器图像文件PRC 3COM PalmPiltt资源(文本或程序)文件PRE Lotus Freelance演示文稿PRF Windows系统文件,Macromedia导演设置文件PRG dBASE Clipper和FoxPro程序源文件;WA Vmaker程序PRJ 3D Studio(DOS)工程文件PRN 打印表格(用空格分隔的文本);DataCAD Windows打印机文件PRP Oberson的Prospero数据转换产品保存的工程文件PRS Harvard Graphics for Windows演示文件PRT 打印格式化文件;Pro/ENGINEER元件文件PRV PsiMail Internet提供者模板文件PRZ Lotus Freelance Graphics 97文件PS Postscript格式化文件(PostScript打印机可读文件)P[请不要讲脏话] Pinnacle Sound BankPSD Adobe photoshop位图文件PSI PSION a-Law声音文件PSM Protracker Studio模型格式;Epic游戏的源数据文件PSP Paint Shop Pro图像文件PST Microsoft Outlook个人文件夹文件PTD Pro/ENGINEER表格文件PTM Polytracker音乐模块(MOD)文件PUB Ventura Publisher出版物;Microsoft Publisher文档PWD Microsoft Pocket Word文档PWL Windows 95口令列表文件PWP Photoworks图像文件(能被Photoworks浏览的一系列文件)PWZ Microsoft Powerpoint向导PXL Microsoft Pocket Excel电子表格PY 来自Yahoo的电子消息;Python脚本文件PYC Python脚本文件Q 对象代码库文件QAD PF QuickArt文档QBW QuickBooks for Windows文件QDT 来自Quicken UK的QuickBooks数据文件,帐目/税/货单程序QD3D Apple的QuickDraw 3D元文件格式QFL FAMILY LAWYER文档QIC Microsoft备份文件QIF QuickTime相关图像(MIME);Quicken导入文件QLB Quick库QM Quality Motion文件QRY Microsoft查询文件QST Quake Spy Tab文件QT,QTM QuickTime电影QTI,QTIF QuickTime相关图像QTP QuickTime优先文件QTS Mac PICT图像文件;QuickTime相关图像QTX QuickTime相关图像QW Symantec Q&A Write程序文件QXD Quark XPress文件R 对象代码库文件R Pegasus邮件资源文件RA RealAudio声音文件RAM RealAudio元文件RAR RAR压缩档案(Eugene Roshall格式)RAS Sun光栅图像位图RAW RAW文件格式(位图);Raw标识的PCM数据RBH 由RoboHELP维持的RBH文件,它加入到一个帮助工程文件的信息中RDF 资源描述框架文件(涉及XML和元数据)RDL Descent注册水平文件REC 录音机宏;RapidComm声音文件REG 注册表文件REP Visual dBASE报表文件RES Microsoft Visual C++资源文件RFT 可修订的表单文本(IBM的DCA一部分或文档内容框架结构一部分)RGB,SGI Silicon图形RGB文件RLE Run-Length编码的位图RL2 Descent2注册水平文件RM RealAudio视频文件RMD Microsoft RegMaid文档RMF Rich Map格式(3D游戏编辑器使用它来保存图)RMI M1D1音乐ROM 基于盒式磁带的家庭游戏仿真器文件(来自Atari2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改)ROV Rescue Rover数据文件RPM RedHat包管理器包(用于Linux)RPT Microsoft Visual Basic Crystal报表文件RRS Ace game Road Rash保存的文件RSL Borland的Paradox 7报表RSM WinWay Resume Writer恢复文件RTF Rich Text格式文档RTK RoboHELP使用的用来模拟Windows帮助的搜索功能RTM Real Tracker音乐模块(MOD)文件RTS RealAudio的RTSL文档;RoboHELP对复杂操作进行加速RUL InstallShield使用的扩展名RVP Microsoft Scan配置文件(MIME)Rxx 多卷档案上的RAR压缩文件(xx= 1~99间的一个数字)S 对象代码库文件S3I Scream Tracker v3设备S3M Scream Tracker v3的声音模块文件SAM Ami专业文档;8位抽样数据SA V 游戏保存文件[请不要讲脏话] 原始带符号字节(8位)数据[请不要讲脏话]K Creative Labs的Soundfont 1.0 Bank文件;(Soundblaster)/EMU SonndFont v1.x Bank文件[请不要讲脏话]L Shockwave Flash对象文件SC2 Microsoft Schedule+7文件格式;SAS目录(Windows 95/NT、OS/2、Mac)SC3 SimCity 3000保存的游戏文件SCC Microsoft Source Safe文件SCD Matrix/Imapro SCODL幻灯片图像;Microsoft Schedule +7SCF Windows Explorer命令文件SCH Microsoft Schedule+1SCI ScanVec Inspire本地文件格式SCN True Space 2场景文件SCP 拨号网络脚本文件SCR Windows屏幕保护;传真图像;脚本文件SCT SAS目录(DOS);Scitex CT位图;Microsoft FoxPro表单SCT01 SAS目录(UNIX)SCV ScanVec CASmate本地文件格式SCX Microsoft FoxPro表单文件SD Sound Designer 1声音文件SD2 Sound Designer 2展平文件/数据分X指令;SAS数据库(Windows 95/NT、OS/2、Mac)SDF 系统数据文件格式—Legacy Unisys(Sperry)格式SDK Roland S—系列软盘映像SDL Smart Draw库文件SDR Smart Draw绘图文件SDS 原始Midi抽样转储标准文件SDT SmartDraw模板SDV 分号分隔的值文件SDW Lotus WordPro图形文件;原始带符号的DWORD(32位)数据SDX 由SDX压缩的Midi抽样转储标准文件SEA 自解压档案(Stufflt for Macintosh或其他软件使用的文件)SEP 标签图像文件格式(TIFF)位图SES Cool Edit Session文件(普通数据声音编辑器文件)SF IRCAM声音文件格式SF2 Emu Soundfont v2.0文件;Creative Labs的Soundfont 2.0 Bank文件(Sound Blaster)SFD SoundStage声音文件数据SFI Sound Stage声音文件信息SFR Sonic Foundry Sample资源SFW Seattle电影工程(损坏的JPEG)SFX RAR自解压档案SGML 标准通用标签语言SHB Corel Show演示文稿;文档快捷文件SHG 热点位图SHP 3D Studio(DOS)形状文件;被一些应用程序用于多部分交互三角形模型的3D 建模SHS Shell scrap文件;据载用于发送“口令盗窃者”SHTML 含有服务器端包括(SSI)的HTML文件SHW Corel Show演示文稿SIG 符号文件SIT Mac的StuffIt档案文件SIZ Oracle 7配置文件SKA PGP秘钥SKL Macromedia导演者资源文件SL PACT的保存布局扩展名SLB Autodesk Slide库文件格式SLD Autodesk Slide文件格式SLK Symbolic Link(SYLK)电子表格SM3 DataCAD标志文件SMP Samplevision格式;Ad Lib Gold抽样文件SND NeXT声音;Mac声音资源;原始的未符号化的PCM数据;AKAI MPC系列抽样文件SNDR Sounder声音文件SNDT Sndtool声音文件SOU [请不要讲脏话] Studio Ⅱ声音SPD Speech数据文件SPL Shockwave Flash对象;DigiTrakker抽样SPPACK SPPack声音抽样SPRITE Acorn的位图格式SQC 结构化查询语言(SQR)普通代码文件SQL InFORMix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名SQR 结构化查询语言(SQR)程序文件SSDO1 SAS数据集合(UNIX)SSD SAS数据库(DOS)SSF 可用的电子表格文件ST Atari ST磁盘映像STL Sterolithography文件STM .shtml的短后缀形式,含有一个服务端包括(SSI)的HTML文件;Scream Tracker V2音乐模块(MOD)文件STR 屏幕保护文件STY Ventura Publisher风格表SVX Amiga 8SVX声音;互交换文件格式,8SVX/16SVSW 原始带符号字(16位)数据SWA 在Macromedia导演文件(MP3文件)中的Shockwave声音文件SWF Shockwave Flash对象SWP DataCAD交换文件SYS 系统文件SYW Yamaha SY系列波形文件。
PDF文件格式分析
PDF 文件中的内容(如文字、图形、图像)都保存在页面对象的 Contents 关键字对应的流 对象(Stream)中。内容流(Content Stream)中用到了很多基本对象如数字、字符串,这些都是 用直接对象(Direct Object)表示的。但还有其他一些对象如字体(Font),本身就是用字典对象 (Dictionary)或流对象(Stream)来表示的,无法用直接对象表示,而内容流中又不能出现任何 间接对象,于是就将这些对象命名,并在内容流中用相应的名字来表示它们。这些用名字来 表示的对象就称作命名资源(Named Resources)。
PDF 的结构可以从文件结构和逻辑结构两个方面来理解。 PDF 的文件结构指的是其文 件物理组织方式,逻辑结构则指的是其内容的逻辑组织方式[1]。 1、数据对象类型:
PDF 文件的基本元素是 PDF 对象(PDF Object),PDF 对象包括直接对象(Direct Object) 和间接对象(Indirect Object);其中直接对象如下几种基本类型:布尔型(Boolean)、数值型 (Number)、字符串型(String)、名字型(Name)、数组型(Array)、字典型(Dictionary)、流对象 (Stream)以及空对象(Null);间接对象是一种标识了的 PDF 对象,这个标识叫作间接对象的 ID。标识的目的是为了让别的 PDF 对象引用。任何 PDF 对象标识后都变成了间接对象。 2、PDF 文件结构:
[/ICCBased 3 0 R]
>>
Endobj
#Object 结束关键字
7 0 obj
<<
/Filter
/FlateDecode
日常文件格式要求 (修订版)
日常文件格式要求一、文本规范(一)纸张大小:A4(209mm*296mm)(二)页边距:上37mm、下35mm、左28mm、右26mm (三)段落行距:固定值28.95磅(四)段落间距(以下的段前段后指用word段落设置中的段前段后来设置,而不是使用手动敲回车来空行):1.总标题为段前2段后1行,2.正文为段前段后0行;3.附件标题为段前1行段后0.5行。
二、格式要求(一)总标题:方正小标宋简体二号分一行或多行居中排布;回行时,要做到词意完整,排列对称,长短适宜,间距恰当;标题排列应当使用梯形或菱形。
(二)一级标题:黑体三号(三)二级标题:楷体—GB2312 三号(四)三级标题及以下:仿宋—GB2312 三号(五)附件总标题:方正小标宋简体小二号(六)西文字体(包括阿拉伯数字):Times New Roman—1—(七)标题层次序号:依次为“一、”、“(一)”、“1.”(此处“.”的格式,指的是中文模式中的符号“.”,而不是英文句号加一个空格,而是中文模式中的符号)、“(1)”。
三、附件要求如有附件,在正文下空一行左空二字编排“附件”二字,后标全角冒号和附件名称。
如有多个附件,使用阿拉伯数字标注附件顺序号(如“附件:1.XXXXX”);附件名称较长需回行时,应当与上一行附件名称的首字对齐。
“附件”二字及附件顺序号用3号黑体字顶格编排在版心左上角第一行。
附件名称后不加标点符号。
附件标题居中编排在版心第三行。
附件顺序号和附件标题应当与附件说明的表述一致。
附件格式要求同正文。
四、落款要求(一)需加盖印章的文件一般在正文(或附件说明)下空3行右空4字编排发文机关署名,在发文机关署名下一行编排成文日期,成文日期相对于发文机关居中排列。
(二)不加盖印章的文件一般在正文(或附件说明)下空1行右空2字编排发文机关署名,在发文机关署名下一行编排成文日期,成文日期相对于发文机关居中排列。
—2—(三)成文日期中的数字用阿拉伯数字将年、月、日标全,年份应标全称,月、日不编虚位(即1不编为01)。
三角网格文件OFF的格式分析及OFF到STL的转化
SHA Chen.M ing ,SHEN Zuo.Lin ,SHEN Ke.Xin (School of Software,Harbin University of Science and Technology,Harbin 150040,China) (Sc,Daqing Normal Universit y,Daqing 163712,China)
计 算 机 系 统 应 用
Abstract:0FF f0biect File Format)iS a kind of common format for three.dimensional model described with triangular mesh.The research of OFF is the foundation condition fo r reading,displaying and other operations.N ow adays,it doesn’t have a set of standards and specifications about the simple analysis of OFF.First of all,the software is based on Visual C++ 6.0 developing platfo rE and uses M FC to achieve a visualinterface.In addition.we can read and write the OFF f ile taking advantage of C++ standard I/O library and the view of OFF file is im plem ented by using OpenG L technology ̄In the end,w e have a system that realizes the functions of reading and displaying fo r OFF file w hile it com pletes the t ransform ation of file from OFF to STL with form at conversion algorithm s. K ey words:OFF;STL;form at tran sform ation;trianglular m esh m odel;OpenGL
测量数据dat文件格式分析转换及应用实例
0引言随着测绘仪器的进步以及卫星导航系统的完善,无棱镜全站仪和GPS 的应用越来越广泛。
这些测量工具的野外测绘成果大都以DAT 格式———系列点坐标文件形式记录并导入CASS 等绘图软件中进行制图的[1]。
测绘行业作为一个服务型行业,它需要服务于各行各业。
以我的工作单位兖矿设计院为例,测量科室要服务于采矿、土建、勘察、机电等多个专业科室,每个科室对测绘对象的要求各有特点,并且各专业科室都有各自的行业软件。
在与测量工作数据对接时需要进行变型转换才能加以应用。
但不论专业有多么不同,针对于测绘这部分的要求万变不离其宗,即都是需要提供地理位置及高程信息(Y 、X 、H )的数据,这就让数据的转换变得简单可行。
1DAT 文件格式首先来分析一下DAT 文件格式,测量所得的标准DAT 文件通过记事本打开,如图1所示:具体格式为“点号,,Y 坐标,X 坐标,H 坐标”。
其中第一列是点号,点号的命名可以是数字也可以是字母;由于测量坐标系与数学坐标系的X 、Y 轴是相反的,因此第二列Y 坐标为横坐标;第三列X 坐标为纵坐标;最后一列H 为高程值,每一列之间都用逗号分隔开。
其他各行业有关位置信息的数据,只要能将干扰的专业数据剔除出去,保留坐标信息,并转换成此格式,就可以方便的被测绘软件所识别。
图1测量数据DAT 文件格式2工程应用实例2.1土建工程中建(构)筑物立面测量DAT 数据的变换测量数据DAT 文件格式分析转换及应用实例冯文娟1,毕继鑫2,刘宗霞1(1.兖矿集团邹城华建设计研究院,山东邹城273500;2.邹城市新汇科表面工程有限公司,山东邹城273500)摘要:测量工作中,测绘人员接触最多的文件格式之一就是DAT 数据文件了。
用全站仪或者GPS等仪器开展测绘工作前后,数据导入导出时都会接触到它。
看起来格式简简单单的文件格式但细细研究起来却也是很有用处。
测绘工作服务于多个行业,每个行业都会有各自的测量要求及专用的行业软件,而每种软件都有各自的文件输出类型。
MP4_3GP文件格式分析
MP4文件格式分析MP4是ISO多媒体文件格式(Media File format)的一个实例,MP4的标准定义在“ISO/IEC 14496-14Part 14: MP4 file format”中,而多媒体文件格式定义于“ISO/IEC 14496-12 and ISO/IEC 15444-12”。
1.概述MP4文件中的所有数据都装在box(Apple的QuickTime File Format中称为atom)中,也就是说MP4文件由若干个box组成,每个box有类型和长度,可以将box理解为一个数据对象块。
box中可以包含另一个box,这种box称为container box。
一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(Movie Box),它是一种container box,子box包含了媒体的metadata信息;MP4文件的媒体数据包含在“mdat”类型的box(Midia Data Box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时),媒体数据的结构由metadata进行描述。
下图为一个典型的MP4文件的结构树。
2.Box首先需要说明的是,box中的字节序为网络字节序,也就是大端字节序(Big-Endian),简单的说,就是一个32位的4字节整数存储方式为高位字节在内存的低端。
Box由header和body组成,其中header统一指明box的大小和类型,body根据类型有不同的意义和格式。
标准的box开头的4个字节(32位)为box size,该大小包括box header和box body整个box的大小,这样我们就可以在文件中定位各个box。
如果size为1,则表示这个box的大小为large size,真正的size值要在largesize域上得到。
X文件结构解析
在三维图形程序设计中,网格模型占有非常重要的地位,而且也是比较复杂的部分,特别是包含动画和蒙皮信息的网格模型。
.x文件格式分析.x文件格式最初是为传统的Direct3D保留模式而设计的,在DirectX 6.0问世后,针对立即模式对它作过一次扩展。
要想在Direct3D程序中灵活自如地使用网格模型,应当深入理解.x文件格式。
.x文件是由模板(template)驱动的,模板定义了如何存储一个数据对象,这样用户便可以自己定义具体的格式。
Direct3D预定义了许多模板,这些预定义的模板位于rmxftmpl.h中,模板标识符都在rmxfguid.h中,通用文件DXUTMesh.cpp包含了这两个头文件。
模板所允许的数据类型称为可选成员(optional member),这些可选成员作为数据对象的子对象来保存,子对象可以是另一种数据类型或对先前数据对象的引用,或是一个二进制对象。
来看一个.x文件(cube_1.x)的完整内容:xof 0302txt 0064Header {1;0;1;}Mesh Cube { //网格8; //8个顶点,以下为8个顶点的坐标1.000000;1.000000;-1.000000;,-1.000000;1.000000;-1.000000;,-1.000000;1.000000;1.000000;,1.000000;1.000000;1.000000;,1.000000;-1.000000;-1.000000;,-1.000000;-1.000000;-1.000000;,-1.000000;-1.000000;1.000000;,1.000000;-1.000000;1.000000;;12; // 12个面, 以下为每个面三个顶点的索引3;0,1,2;,3;0,2,3;,3;0,4,5;,3;0,5,1;,3;1,5,6;,3;1,6,2;,3;2,6,7;,3;2,7,3;,3;3,7,4;,3;3,4,0;,3;4,7,6;,3;4,6,5;;}该模型的效果图如下:第一行文件头中的"xof"告诉程序,它加载的文件是一个.x文件,"0302"表示它使用的是DirectX 3.2 版本的模板,"txt"表示这些数据是以文本形式存储的,"0064"定义了浮点数的位数是64位。
SQLite数据库文件格式全面分析
SQLite数据库文件格式全面分析作者:空转0前言性急的兄弟可以跳过前言直接看第1章,特别性急的兄弟可以跳过前面各章,直接看鸣谢。
最近对SQLite数据库很感兴趣,认真地学了有半个多月了,越学越觉着好玩。
好玩归好玩,只是目前没什么实际用途,那就写点儿东西吧,否则半个月不是白学了嘛!SQLite数据库包括多方面的知识,比如VDBE什么的。
据说那些东西会经常变。
确实,我用的是3.6.18版,我看跟其它文档中描述的3.3.6的VDBE已经很不一样了。
所以决定先写文件格式,只要是3.?.?的版本,文件格式应该不会有太大变化吧。
网上介绍SQLite文件格式的文章并不少,但一般都是针对小文件:一个表,几条记录,两个页。
本文准备一直分析到比较大的文件,至少B-tree和B+tree中得有内结点(就是说不能只有一个既是根又是叶的结点,就是说表中得多点记录,得建索引),还要争取对SQLite的各类页都做出分析。
在分析的过程中,争取把SQLite数据库关于文件格式的基本规定也都介绍一下。
这样,本文既是一个综合性的技术文档,又带有实例说明,兄弟们参考时岂不是就很方便了吗?既然是技术文档,要想读懂总得先掌握点SQLite数据库的基本知识吧。
所以,先介绍参考文献。
0.1 参考文献1-The Definitive Guide to SQLite . Michael Owens:据说是比较经典的SQLite著作,我看写得是挺好的。
边看边翻译了其中的主要部分,但不敢拿出来,大家还是看原文吧。
2-SQLite源代码:其实有关SQLite的最原始说明可能都在源代码中了。
把此项列在第2,只是因为我是先看的书再看的代码,估计大家也会是这个顺序吧。
先浏览一下代码还是很有收获的,特别是几个主要的.h文件,对本文的写作很有帮助。
有关文件格式的说明主要在btreeInt.h中。
3-SQLite入门与分析:网上Arrowcat的系列文章。
Arrowcat应该是一个很博学的人,看他的文章收获很大,在此也算是鸣谢吧。
exp文件语法-概述说明以及解释
exp文件语法-概述说明以及解释1.引言1.1 概述EXP文件(Expression File)是一种文本文件格式,旨在描述某种特定的语法结构和语义规则。
它通常用于存储和传输计算机程序的配置信息、数据结构以及相关指令等。
EXP文件语法使用一种面向对象的结构,可以方便地表示和组织数据。
它采用了一种树状的结构来描述文件内容,其中每一个节点都可以包含子节点,这样的设计使得EXP文件可以灵活地描述各种复杂的数据关系。
EXP文件的结构包括一个大纲(Outline)和若干小节(Section)。
大纲(Outline)是整篇EXP文件的架构,用于概述和组织文章的主要内容。
而小节(Section)则是大纲下的具体细分内容,用于详细描述EXP 文件的各个方面。
本文将针对EXP文件的基本语法、数据类型和变量进行详细介绍,以及EXP文件语法的应用场景和其优势与不足。
EXP文件作为一种通用的表示方式,可以被很多软件平台所支持和解析。
它的灵活性和可扩展性为软件开发者提供了便利,使得他们可以更方便地进行程序配置和数据存储与传输。
通过本文的学习,读者将能够了解EXP文件的基础语法和数据类型,掌握EXP文件的相关语义规则,并能够灵活地运用EXP文件来描述和处理各种数据结构和指令。
在接下来的章节中,我们将深入探讨EXP文件的基本语法和数据类型,通过具体的示例来帮助读者更好地理解和应用EXP文件。
1.2 文章结构文章结构是指文章整体的布局和组织方式。
一个良好的文章结构可以使读者更好地理解文章的内容,并有助于文章的流畅阅读。
在本文中,我们将介绍exp文件的语法结构。
exp文件是一种用于编写和保存实验数据和结果的文件格式。
它具有一套特定的语法规则和格式,用于定义数据类型和变量,并支持数据的读取、修改和存储操作。
exp文件的语法结构主要包括以下几个部分:1. 文件头:exp文件的开头通常包含一些必要的信息,如文件的创建日期、版本号等。
文件头部分可以用于描述文件的基本属性和说明。
odb 格式数据解析
ODB(Object Database)格式是一种面向对象的数据库文件格式,用于存储和操作面向对象的数据。
解析ODB格式数据主要涉及以下几个步骤:
1.了解ODB文件结构:首先需要了解ODB文件的结构和组织方式。
ODB文件通常由
多个块组成,每个块包含一个或多个对象的数据。
每个对象由标识符、属性、关联关系等信息组成。
2.解析块头信息:读取ODB文件的起始块,该块包含有关文件的元数据信息,如版本
号、块大小、对象索引等。
解析块头信息可以帮助我们确定文件所使用的版本和存储方式。
3.解析对象数据:根据块头信息中的对象索引,定位到特定对象的位置,并读取该对
象的数据。
对象数据通常包括对象的属性值、关联关系以及可能的其他元数据。
4.处理属性和关联关系:解析对象数据时,需要解析对象的属性和关联关系。
属性包
括对象的各个字段或属性的值,关联关系表示对象与其他对象之间的关联关系,如一对一、一对多、多对多等。
5.数据转换和操作:根据具体的需求,将解析出的数据转换为可供应用程序使用的格
式。
这可能涉及数据类型转换、数据结构调整、数据清洗等操作。
6.错误处理和异常情况:在解析ODB格式数据时,可能会遇到各种错误和异常情况,
如文件损坏、数据格式不正确等。
在处理数据时,需要考虑如何处理这些异常情况,并给出相应的错误提示或处理方式。
ELF文件格式解析
ELF ⽂件格式解析1. ELF ⽂件简介⾸先,你需要知道的是所谓对象⽂件(Object files)有三个种类:1. 可重定位的对象⽂件(Relocatable file)这是由汇编器汇编⽣成的 .o ⽂件。
后⾯的链接器(link editor)拿⼀个或⼀些 Relocatable object files 作为输⼊,经链接处理后,⽣成⼀个可执⾏的对象⽂件 (Executable file) 或者⼀个可被共享的对象⽂件(Shared object file)。
我们可以使⽤ ar ⼯具将众多的 .o Relocatable object files 归档(archive)成 .a 静态库⽂件。
如何产⽣ Relocatable file,你应该很熟悉了,请参见我们相关的基本概念⽂章和JulWiki。
另外,可以预先告诉⼤家的是我们的内核可加载模块 .ko ⽂件也是 Relocatable object file。
2. 可执⾏的对象⽂件(Executable file)这我们见的多了。
⽂本编辑器vi、调式⽤的⼯具gdb、播放mp3歌曲的软件mplayer等等都是Executable object file。
你应该已经知道,在我们的 Linux 系统⾥⾯,存在两种可执⾏的东西。
除了这⾥说的 Executable object file,另外⼀种就是可执⾏的脚本(如shell 脚本)。
注意这些脚本不是 Executable object file,它们只是⽂本⽂件,但是执⾏这些脚本所⽤的解释器就是 Executable object file,⽐如 bash shell 程序。
3. 可被共享的对象⽂件(Shared object file)这些就是所谓的动态库⽂件,也即 .so ⽂件。
如果拿前⾯的静态库来⽣成可执⾏程序,那每个⽣成的可执⾏程序中都会有⼀份库代码的拷贝。
如果在磁盘中存储这些可执⾏程序,那就会占⽤额外的磁盘空 间;另外如果拿它们放到Linux系统上⼀起运⾏,也会浪费掉宝贵的物理内存。
大数据中常见的文件存储格式以及hadoop中支持的压缩算法
大数据中常见的文件存储格式以及hadoop中支持的压缩算法摘要:1.大数据中的文件存储格式a.文本格式b.二进制格式c.列式存储格式d.对象存储格式2.Hadoop 中的文件存储格式a.HDFSb.Hivec.Impala3.Hadoop 支持的压缩算法a.Gzipb.Snappyc.LZOd.Parquet正文:随着大数据技术的发展,数据存储和处理能力不断提高,文件存储格式和压缩算法的选择对于数据处理效率至关重要。
本文将介绍大数据中常见的文件存储格式以及Hadoop 中支持的压缩算法。
一、大数据中的文件存储格式1.文本格式:文本格式是一种常见的数据存储格式,适用于存储结构化或半结构化的数据。
常见的文本格式包括CSV(逗号分隔值)和JSON (JavaScript 对象表示法)。
文本格式具有易于阅读和编写的优势,但不适用于存储大型数据集。
2.二进制格式:二进制格式适用于存储结构化数据,如数据库中的数据。
它可以有效地存储数据,并快速进行数据检索和处理。
常见的二进制格式包括Protobuf 和Avro。
二进制格式具有存储效率高、数据处理速度快的优势,但阅读和编写较为困难。
3.列式存储格式:列式存储格式是一种适用于大数据处理的存储格式。
它将数据按照列进行存储,以提高数据压缩率和查询速度。
常见的列式存储格式包括Parquet 和ORC。
列式存储格式具有存储空间小、查询速度快的优势,但写入数据时需要对数据进行列式处理。
4.对象存储格式:对象存储格式是一种以对象为单位存储数据的格式。
每个对象都包含一个唯一的键和数据内容。
常见的对象存储格式包括JSON 和XML。
对象存储格式具有数据结构灵活、易于扩展的优势,但不适用于所有场景。
二、Hadoop 中的文件存储格式1.HDFS:HDFS(Hadoop 分布式文件系统)是Hadoop 中的基础文件存储系统。
它适用于存储大规模数据,并提供高可靠性和容错能力。
HDFS 支持多种文件存储格式,如文本格式、二进制格式和列式存储格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象文件格式分析工具: objdump, nm,ar前言如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面的工具:objdump, nm, ar。
当然,本文不可能非常详细的说明它们的使用方法和功能。
如果你觉得本文不够清楚,你可以使用:man. 我的计划只是想让更多的人了解这些工具,以后在今后的编程过程中能有所帮助。
1. 库文件操作命令:ar ----非常好的东东。
让你能查看函数库里的详细情况和用多个对象文件生成一个库文件。
可以将多个.o打包成一个.a或者将一个.a拆分成.o1. 经常用法:1. ar -t libname.a //显示所有对象文件(.o文件)的列表.例:# ar t libtest.alibtest1.olibtest2.o2. ar -rv libname.a objfile1.o objfile2.o ... objfilen.o //把objfile1.o--objfilen.o打包成一个库文件2. ar 选项d:从库中删除模块。
按模块原来的文件名指定要删除的模块。
如果使用了任选项v则列出被删除的每个模块。
m:该操作是在一个库中移动成员。
当库中如果有若干模块有相同的符号定义(如函数定义),则成员的位置顺序很重要。
如果没有指定任选项,任何指定的成员将移到库的最后。
也可以使用'a','b',或'I'任选项移动到指定的位置。
p:显示库中指定的成员到标准输出。
如果指定任选项v,则在输出成员的内容前,将显示成员的名字。
如果没有指定成员的名字,所有库中的文件将显示出来。
q:快速追加。
增加新模块到库的结尾处。
并不检查是否需要替换。
'a','b',或'I'任选项对此操作没有影响,模块总是追加的库的结尾处。
如果使用了任选项v则列出每个模块。
这时,库的符号表没有更新,可以用'ar s'或ranlib来更新库的符号表索引。
r:在库中插入模块(替换)。
当插入的模块名已经在库中存在,则替换同名的模块。
如果若干模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。
默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。
t:显示库的模块表清单。
一般只显示模块名。
x:从库中提取一个成员。
如果不指定要提取的模块,则提取库中所有的模块。
下面在看看可与操作选项结合使用的任选项:a:在库的一个已经存在的成员后面增加一个新的文件。
如果使用任选项a,则应该为命令行中membername参数指定一个已经存在的成员名。
b:在库的一个已经存在的成员前面增加一个新的文件。
如果使用任选项b,则应该为命令行中membername参数指定一个已经存在的成员名。
c:创建一个库。
不管库是否存在,都将创建。
f:在库中截短指定的名字。
缺省情况下,文件名的长度是不受限制的,可以使用此参数将文件名截短,以保证与其它系统的兼容。
i:在库的一个已经存在的成员前面增加一个新的文件。
如果使用任选项i,则应该为命令行中membername参数指定一个已经存在的成员名(类似任选项b)。
l:暂未使用N:与count参数一起使用,在库中有多个相同的文件名时指定提取或输出的个数。
o:当提取成员时,保留成员的原始数据。
如果不指定该任选项,则提取出的模块的时间将标为提取出的时间。
P:进行文件名匹配时使用全路径名。
ar在创建库时不能使用全路径名(这样的库文件不符合POSIX标准),但是有些工具可以。
s:写入一个目标文件索引到库中,或者更新一个存在的目标文件索引。
甚至对于没有任何变化的库也作该动作。
对一个库做ar s等同于对该库做ranlib。
S:不创建目标文件索引,这在创建较大的库时能加快时间。
u:一般说来,命令ar r...插入所有列出的文件到库中,如果你只想插入列出文件中那些比库中同名文件新的文件,就可以使用该任选项。
该任选项只用于r操作选项。
v:该选项用来显示执行操作选项的附加信息。
V:显示ar的版本.2. nm --列出目标文件(.o)的符号清单。
NND,太激动了。
刚知道此命令时让我三天没睡好觉。
我就使劲用了一把。
1. 常用法:1. nm -s filename.a/filename.o/a.out 里边所有的符号列表一清二楚。
例:# nm -s a.out080495b8 A __bss_start08048334 t call_gmon_start080495b8 b completed.5751080494b8 d __CTOR_END__080494b4 d __CTOR_LIST__080495ac D __data_start080495ac W data_start08048450 t __do_global_ctors_aux08048360 t __do_global_dtors_aux080495b0 D __dso_handle080494c0 d __DTOR_END__080494bc d __DTOR_LIST__080494c8 d _DYNAMIC080495b8 A _edata080495bc A _end0804847c T _fini08048498 R _fp_hw08048390 t frame_dummy080484b0 r __FRAME_END__08049594 d _GLOBAL_OFFSET_TABLE_w __gmon_start__0804844c T __i686.get_pc_thunk.bx080482b8 T _init080494b4 a __init_array_end080494b4 a __init_array_start0804849c R _IO_stdin_used080494c4 d __JCR_END__080494c4 d __JCR_LIST__w _Jv_RegisterClasses080483e0 T __libc_csu_fini080483f0 T __libc_csu_initU __libc_start_main@@GLIBC_2.0080483b4 T main080495b4 d p.5749U puts@@GLIBC_2.008048310 T _start2. 选项/属性:-a或--debug-syms:显示调试符号。
-B:等同于--format=bsd,用来兼容MIPS的nm。
-C或--demangle:将低级符号名解码(demangle)成用户级名字。
这样可以使得C++函数名具有可读性。
-D或--dynamic:显示动态符号。
该任选项仅对于动态目标(例如特定类型的共享库)有意义。
-f format:使用format格式输出。
format可以选取bsd、sysv或posix,该选项在GNU的nm中有用。
默认为bsd。
-g或--extern-only:仅显示外部符号。
-n、-v或--numeric-sort:按符号对应地址的顺序排序,而非按符号名的字符顺序。
-p或--no-sort:按目标文件中遇到的符号顺序显示,不排序。
-P或--portability:使用POSIX.2标准输出格式代替默认的输出格式。
等同于使用任选项-f posix。
-s或--print-armap:当列出库中成员的符号时,包含索引。
索引的内容包含:哪些模块包含哪些名字的映射。
-r或--reverse-sort:反转排序的顺序(例如,升序变为降序)。
--size-sort:按大小排列符号顺序。
该大小是按照一个符号的值与它下一个符号的值进行计算的。
-t radix或--radix=radix:使用radix进制显示符号值。
radix只能为"d"表示十进制、"o"表示八进制或"x"表示十六进制。
--target=bfdname:指定一个目标代码的格式,而非使用系统的默认格式。
-u或--undefined-only:仅显示没有定义的符号(那些外部符号)。
-l或--line-numbers:对每个符号,使用调试信息来试图找到文件名和行号。
对于已定义的符号,查找符号地址的行号。
对于未定义符号,查找指向符号重定位入口的行号。
如果可以找到行号信息,显示在符号信息之后。
-V或--version:显示nm的版本号。
--help:显示nm的任选项。
3. objdump 文件命令功能强的惊人。
能实现上述两个命令(ar,nm)的很多功能。
它主要是查看对象文件的内容信息。
1. 常用法:1. objdump -h file<.o,.a,.out>//查看对象文件所有的节sections.例如:# objdump -h libtest1.olibtest1.o: file format elf32-i386Sections:Idx Name Size VMA LMA File off Algn0 .text 00000014 00000000 00000000 00000034 2**2CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE1 .data 00000000 00000000 00000000 00000048 2**2CONTENTS, ALLOC, LOAD, DATA2 .bss 00000000 00000000 00000000 00000048 2**2ALLOC3 .rodata 0000000e 00000000 00000000 00000048 2**0CONTENTS, ALLOC, LOAD, READONLY, DATA4 .comment 0000001f 00000000 00000000 00000056 2**0CONTENTS, READONLY5 .note.GNU-stack 00000000 00000000 00000000 00000075 2**0CONTENTS, READONLY2. objdump -t 查看对象文件所有的符号列表,相当于nm -s objfilename,如:# objdump -t libtest1.olibtest1.o: file format elf32-i386SYMBOL TABLE:00000000 l df *ABS* 00000000 libtest1.c00000000 l d .text 00000000 .text00000000 l d .data 00000000 .data00000000 l d .bss 00000000 .bss00000000 l d .rodata 00000000 .rodata00000000 l d .note.GNU-stack 00000000 .note.GNU-stack00000000 l d .comment 00000000 .comment00000000 g F .text 00000014 print_test100000000 *UND* 00000000 puts2. 更多信息请查看选项:--archive-headers-a 显示档案库的成员信息,与ar tv 类似objdump -a libpcap.a和ar -tv libpcap.a 显示结果比较比较显然这个选项没有什么意思。