'\" te .\" Copyright (c) 2010, 2014, Oracle and/or its affiliates.All rights reserved. .TH elffile 1 "2014 年 4 月 23 日" "SunOS 5.11" "用户命令" .SH 名称 elffile \- 标识 \fBELF\fR 文件类型 .SH 用法概要 .LP .nf \fBelffile\fR [\fB-s\fR \fBbasic\fR | \fBdetail\fR | \fBsummary\fR] \fIfilename\fR... .fi .SH 描述 .sp .LP \fBelffile\fR 实用程序是 \fBfile\fR 命令的专用变体,用于与 \fBELF\fR 目标文件以及相关文件类型结合使用。\fBelffile\fR 可标识以下类型的文件: .sp .ne 2 .mk .na \fB归档文件\fR .ad .sp .6 .RS 4n 除了 \fBfile\fR 提供的信息外,\fBelffile\fR 还可标识归档成员的类型。 .RE .sp .ne 2 .mk .na \fBELF 目标文件/运行时链接程序配置文件\fR .ad .sp .6 .RS 4n \fBelffile\fR 提供的输出与 \fBfile\fR 相同 .RE .sp .LP 其他类型的文件均报告为非 \fBELF\fR 文件。不尝试对此类文件进行详细分类。建议使用 \fBfile\fR 实用程序完成一般性的文件识别。 .SH 选项 .sp .LP 支持以下选项: .sp .ne 2 .mk .na \fB\fB-s\fR \fBbasic\fR | \fBdetail\fR | \fBsummary\fR\fR .ad .sp .6 .RS 4n 指定要提供的输出样式 .sp .ne 2 .mk .na \fBbasic\fR .ad .sp .6 .RS 4n 以 \fBfile\fR 使用的相同格式生成一行说明。 .RE .sp .ne 2 .mk .na \fBdetail\fR .ad .sp .6 .RS 4n 对于非归档文件,\fBsummary\fR 的输出与 \fBbasic\fR 的输出相同。处理归档文件时,基本输出行后显示每个归档成员的一行输出。 .RE .sp .ne 2 .mk .na \fBsummary\fR .ad .sp .6 .RS 4n 对于非归档文件,\fBsummary\fR 的输出与 \fBbasic\fR 的输出相同。处理归档文件时,会在基本输出的末尾添加归档内容的摘要说明。如果未指定 \fB-s\fR 选项,\fBelffile\fR 缺省情况下将使用 \fBsummary\fR 样式。 .RE .RE .SH 附注 .sp .LP 使用摘要样式时,为归档文件生成的输出取决于归档内容。如果归档文件包含同一平台的同种目标文件集合,则平台详细信息的显示格式采用显示单一目标文件的格式。否则,生成摘要说明。使用详细信息样式可获取关于各个归档成员的更具体的信息。 .sp .LP 摘要样式和详细信息样式均需要检查归档文件的每个成员。执行速度与归档成员数量成正比,如果归档文件非常大,速度会很慢。 .SH 示例 .LP \fB示例 1 \fR显示归档文件的摘要输出 .sp .LP 以下示例显示了 \fBelffile\fR 针对不同内容的归档文件所生成的摘要输出。使用以下归档文件。 .sp .ne 2 .mk .na \fB\fBsame_elf.a\fR\fR .ad .sp .6 .RS 4n 单个平台的 \fBELF\fR 目标文件。 .RE .sp .ne 2 .mk .na \fB\fBmixed_elf.a\fR\fR .ad .sp .6 .RS 4n 多个平台的 \fBELF\fR 目标文件。 .RE .sp .ne 2 .mk .na \fB\fBmixed.a\fR\fR .ad .sp .6 .RS 4n \fBELF\fR 目标文件和非 \fBELF\fR 文件。 .RE .sp .ne 2 .mk .na \fB\fBnot_elf.a\fR\fR .ad .sp .6 .RS 4n 非 \fBELF\fR 文件。 .RE .sp .LP 归档文件的摘要输出取决于归档成员的类型。 .sp .in +2 .nf example% \fBelffile same_elf.a mixed_elf.a mixed.a not_elf.a\fR same_elf.a: current ar archive, 32-bit symbol table, \e ELF 64-bit LSB relocatable AMD64 Version 1 mixed_elf.a: current ar archive, 32-bit symbol table, \e mixed ELF content mixed.a: current ar archive, 32-bit symbol table, \e mixed ELF and non-ELF content not_elf.a: current ar archive, non-ELF content .fi .in -2 .sp .LP \fB示例 2 \fR过滤归档文件的详细输出 .sp .LP \fBelffile\fR 的详细输出为归档文件生成一行输出,后面为每个归档成员显示一行输出。可以轻松地过滤此输出,以便用各种格式显示信息。以下示例使用归档文件 \fBlibCstd.a\fR 说明了此特点,该归档文件包含 64 位 \fBx86\fR 系统的可重定位目标文件。此归档文件未经过滤的 \fBelffile\fR 详细输出如下所示: .sp .in +2 .nf example% \fBelffile -s detail libCstd.a\fR libCstd.a: current ar archive, 32-bit symbol table libCstd.a(bitset.o): ELF 64-bit LSB relocatable \e AMD64 Version 1 [CMOV] libCstd.a(complex.o): ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 SSE CMOV FPU] libCstd.a(limits.o): ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 SSE FPU] libCstd.a(limitsinit.o): ELF 64-bit LSB relocatable \e AMD64 Version 1 libCstd.a(stdexcept.o): ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE CMOV] \&... .fi .in -2 .sp .sp .LP 此输出显示每个目标文件均标记有运行所需的硬件功能。这些功能标记因每个目标文件中的代码而异。以下命令对 \fBelffile\fR 的输出进行了过滤,以标识每个唯一的功能掩码,并计算归档文件中每个掩码对应的目标文件数量。\fBsed\fR 命令用于从输出中删除归档成员名称,这样,每个具有相同功能掩码的归档成员的输出将会相同。\fBsort\fR 命令用于将这些相同的行归在一起,\fBuniq\fR 命令用于将每个唯一的组替换为该组中的一行,并在该行的前面显示该行在该组出现的次数。 .sp .in +2 .nf example% \fBelffile -s detail libCstd.a | sed 's,(.*),,' | \e sort -f | uniq -c\fR 1 libCstd.a: current ar archive, 32-bit symbol table 777 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 1 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [CMOV FPU] 126 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [CMOV] 12 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [FPU] 69 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE CMOV] 2 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 CMOV] 3 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 SSE CMOV FPU] 3 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 SSE CMOV] 1 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 SSE FPU] 2 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2 SSE] 20 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE2] 4 libCstd.a: ELF 64-bit LSB relocatable \e AMD64 Version 1 [SSE] .fi .in -2 .sp .SH 退出状态 .sp .LP 将返回以下退出值: .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 6n .rt 成功完成 .RE .sp .ne 2 .mk .na \fB>0\fR .ad .RS 6n .rt 出现错误 .RE .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性system/linker _ 接口稳定性Committed(已确定) .TE .SH 另请参见 .sp .LP \fBar\fR(1)、\fBdump\fR(1)、\fBelfdump\fR(1)、\fBfile\fR(1) .sp .LP \fI《Oracle Solaris 11.3 Linkers and Libraries Guide》\fR