'\" 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 ユーティリティーは、\fBELF\fR オブジェクトとそれに関連するファイルタイプで使用することを目的にした、\fBfile\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 によって使用されるのと同じ形式の 1 行の説明を生成します。 .RE .sp .ne 2 .mk .na \fBdetail\fR .ad .sp .6 .RS 4n アーカイブ以外の場合、\fBsummary\fR の出力は \fBbasic\fR と同じです。アーカイブを処理する場合は、基本出力行のあとに、アーカイブメンバーごとの 1 行の出力が続きます。 .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 サマリー形式を使用しているときにアーカイブに対して生成される出力は、そのアーカイブの内容によって異なります。アーカイブに、同じプラットフォームに対するオブジェクトの同種コレクションが含まれている場合は、そのプラットフォームの詳細が 1 つのオブジェクトに使用されるのと同じ形式で示されます。それ以外の場合は、サマリーの説明が生成されます。詳細形式を使用すると、個々のアーカイブメンバーに関するより具体的な情報を取得できます。 .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 1 つのプラットフォームに対する \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 からの詳細出力では、アーカイブの 1 行の出力が生成され、そのあとにアーカイブメンバーごとの 1 行の出力が続きます。この出力を容易にフィルタ処理して、情報をさまざまな形式で提供できます。次の例では、64 ビットの \fBx86\fR システム用の再配置可能オブジェクトを含む \fBlibCstd.\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 コマンドは、一意の各グループをグループごとの 1 行に置き換え、各行の先頭にその行がグループ内で出現した回数を示すために使用されます。 .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 _ インタフェースの安定性確実 .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