| Current File : //usr/man/zh_CN.UTF-8/man1/elffile.1 |
'\" 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