ar - ライブラリー・アーカイブを作成または保守する

形式

  • ar -d[-Ilv] archive member ... ..
  • ar -m[-abIilsv] [posname] archive member ...
  • ar -p[-Ilsv] archive member ...
  • ar -q[-clsv] [-F format] archive member ...
  • ar -r[abcIilsuv] [-F format] [posname] archive member ...
  • ar -t[Ilsv] archive member ...]
  • ar -u[-abcIiklsv] [-Fformat] [posname] archive member ...
  • ar -x[-CIlsTv] archive member...] ...

説明

ar は、アーカイブ・ライブラリーを保守します。アーカイブ・ライブラリーは、ファイル (通常、オブジェクト・ファイル) の集合です。ar を使用すると、新規ライブラリーの作成、既存ライブラリーへのメンバーの追加、ライブラリーからのメンバーの削除、ライブラリーからのメンバーの抽出、およびライブラリーの内容一覧表の出力を行えます。

ライブラリー・メンバーは、任意のファイルです。通常、これらのファイルはオブジェクト・ファイルまたはサイド・ファイルであり、リンケージ・エディターで使用できるフォーマットになっています。

ライブラリーの いずれかのメンバーがオブジェクト・ファイルである場合は、ar はリンク・エディット用の外部シンボル索引を作成し、保守します。

アーカイブ内のメンバー名は、パス名の最後のコンポーネントだけです。コマンド行で指定された新規ライブラリー・メンバー (member) を 作成するときには、ar は指定された絶対パス名を使用します。ライブラリー内の メンバー名を格納するとき、またはメンバー名を比較するときに は、ar は最後のコンポーネントだけを使用します。

オプション

「形式」には、ar の 7 つの主要な機能が示されています。それらは以下のように定義されます。
-d
指定された各 member をアーカイブから削除し、シンボル・テーブルを再生成します。
-m
アーカイブ内の指定されたアーカイブ・メンバーを移動します。新しい位置は 、-a-bi、または posname で指定されます。場所が指定されなかった場合は、メンバーはアーカイブの最後に移動されます。
-p
指定された各 member を標準出力に 表示します。メンバーが指定されなかったときは、ar はすべてのメンバーを表示します。
-q
指定された file をアーカイブに速やかに追加します。この オプションを指定すると、arfile がすでにアーカイ ブのメンバーであるかどうかを検査しません。
-r
archivefile を置き換えるか、または追加します。 archive が存在しない場合は、ar はそれを作成し、メッ セージを出力します。ar が既存の メンバーを置き換えるときには、アーカイブの順序は変更されません。file がメンバーを置き換えない場合は 、-a-b、または -i が使用されていない限り、そのメンバーはアーカイブの最後に追加されます。このオプションは、シンボル・テーブルを再生成します。
-t
メンバーをリストした内容一覧表を表示します。member が指定されないときは全メンバーが表示されます。ar は、見つけられなかったメンバーについてメッセージを出力しま す。デフォルトで、ar はすべての選択されたメンバーについて、メンバー名を印刷します。詳細 (-v) オプションが指定されている と、ar はすべての選択されたメンバーについて、より多くの情報を出力します。
-x
指定された各 member をアーカイブから抽出し、ファイルにコピーします。member が絶対パス名として指定された場合は、そのパス名にコピーされます。member が指定されなかった場合は、すべてのメンバーが抽出されます。アーカイブは変更されず、そのままです。
以下のオプションは、主要機能の動作を変更します。
-a
file を、アーカイブ内の posname で指定された メンバーの次に入れます。メンバーが指定されていない場合は 、file はアーカイブの最後に追加されます。
-b
file を、アーカイブ内の posname で指定された メンバーの前に入れます。メンバーが指定されていない場合は 、file はアーカイブの最初に追加されます。
-C
ar が既存のファイルを抜き出されたファイルで上書きするのを防止し ます。このオプションは、抽出 (-x) と共にのみ使用されます。
-C
ar が新しいアーカイブ・ファイルを作成するときに通常印刷される メッセージを抑制します。これは、-r およ び -q オプションとの組み合わせでのみ使用できます。
-F format
そのアーカイブのフォーマットが、新しいアーカイブで使用されることを 指定します。このオプションは、-r-q オプションで 新しいアーカイブを作成するときだけ使用できます。
-I
指定されたメンバー名をアーカイブで検索するときに、大文字と小文字を区別しません。通常は、大文字と小文字は区別されます。
-i
file を、アーカイブの posname で指定されたメンバーの前に挿入します。posname が指定されていない場合は 、arfile をファイルの最初に挿入します。このオプションは 、-b と同じです。
-l
このオプションは無視されます。これは、ar によって生成された一時ファイルを、デフォルトの一時ファイル・ディレクトリーではなく、通常のディレクトリーに入れるように要求します。これは、旧バージョンの ar との互換性のために提供されているものです。
-s
コマンドがアーカイブを変更するかどうかにかかわらず、外部シンボル・テーブルを再生成します。
-t
-x と共に使用すると、ファイル・システムが サポートするよりも長い名前のメンバーを抜き出すことが可能になります。通常、これはエラーになり、ar はファイルを抜き出しません。大部分の ファイル・システムは、ファイル名を適切な長さに切り捨てます。
-u
member ファイルの変更時刻がアーカイブ・メンバーの 変更時刻よりも新しい場合にのみ、アーカイブ・メンバーを置き換えます。-u は、-r を暗黙指定します。 このため、-r を一緒に指定する必要はありません。
-v
詳細出力が行われます。このオプションを -d-q-r、および -x と共に指定すると、各操作を実行する前に、コマンド文字および影響のあるメンバー名を出力します。-t と共に指定すると 、ar はアーカイブ・メンバーに関するさらに多くの情報を、ls -l と同様のフォーマットで出力します。-p と共に指定すると 、ar はファイルの内容を表示する前に、メンバーの名前を標準出力に書き出します。

オペランド

アーカイブ
アーカイブ・ファイルのパス名を指定します。
member
アーカイブ・ライブラリー内の、操作 (追加、削除、検索など) 対象のファイルのパス名を指定します。

  1. メンバー fioacc.o を アーカイブ・ファイル /u/turner/bin/cliserpgm.a に 追加するには、次のように指定します。
    ar -rc /u/turner/bin/cliserpgm.a fioacc.o
  2. アーカイブ・ファイル /u/turner/bin/cliserpgm.a の メンバーを表示するには、次のように指定します。
    ar -tv /u/turner/bin/cliserpgm.a
  3. メンバー repgen.o を アーカイブ・ファイル /u/turner/bin/cliserpgm.a から削除し、アーカイブ用の外部シンボル・テーブルを再生成するには、次のように指定します。
    ar -ds /u/turner/bin/cliserpgm.a repgen.o

環境変数

ar は、以下の環境変数を使用します。
TMPDIR
一時ファイルに使用されているディレクトリーのパス名。これが設定されていない場合は 、z/OS UNIX/tmp を使用します。

ローカライズ

ar は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • LC_TIME
  • NLSPATH

詳しくは、ローカライズを参照してください。

ファイル

ar は、アーカイブ・ファイルのディレクトリーおよび TMPDIR 環境変数で指定されたディレクトリーに一時ファイルを作成します。 これらのファイルは、作成または更新しているアーカイブ・ファイルの 中間バージョンです。したがって、操作中のアーカイブ・ファイルとほぼ同じファイル・サイズがこれらのファイルに必要になります。

使用上の注意

ar を使用すると、同じオブジェクト・ファイルの複数のバージョンを 1 つのアーカイブ・ライブラリー内に保管することができます。 これは、さまざまなコンパイラー・オプションでコンパイルされるコードからの参照を解決するために使用されるアーカイブ・ライブラリーを提供する場合に役立ちます。 これらのオプションによりオブジェクト・ファイルに違いが生じますが、それらの違いはアーカイブ・ライブラリー・メンバー属性と一致させる必要があります。 ar の属性は AMODE、 XPLINK、および IPA です。

ar は、すべての項目の属性情報をシンボル・テーブルに保管します。リンケージ・エディターはこの属性情報を使用して、適切なアーカイブ・ライブラリー・メンバーを付けて外部参照を解決します。 アーカイブ・ライブラリー・メンバー名はパス名の最後の構成要素にすぎないので、異なるオブジェクト・ファイル・バージョンではこれらのメンバー名が固有である必要があります。

サイド・ファイル (通常、DLL をリンク・エディットするときに作成されるファイル) は、アーカイブ・ファイルのメンバーにすることができます。リンケージ・エディターは、そのようなアーカイブ・ファイルを処理するとき、通常ではそのようなすべてのサイド・ファイルを読み取ります。これにより、アーカイブを使用して DLL 内のシンボル参照を解決できます。外部参照の解決方法の詳細については、「z/OS MVS プログラム管理: ユーザーズ・ガイドおよび解説書」を参照してください。

オブジェクト・ファイルの命名規則を確立して、正しい名前を生成するための作成手順を変更することができます。 例えば、アーカイブに 3 つのバージョンの myfuncs.o が含まれている場合は、以下の名前を生成できます。
     myfuncs.o			AMODE(31), non-XPLINK
     myfuncsX.o		AMODE(31), XPLINK
     myfuncs64.o		AMODE(64) (AMODE(64) always forces XPLINK)
Make ファイルは、次のようなコマンドを生成します。
     c89 -c myfuncs.c
     c89 -Wc,xplink -o myfuncsX.o -c myfuncs.c
     c89 -Wc,LP64 -o myfuncs64.o -c myfuncs.c
     ar  -ruv libmyfuncs.a myfuncs.o myfuncsX.o myfuncs64.o
オブジェクト・ファイルまたはオブジェクト・ファイルのアーカイブ・ライブラリー内のシンボルの属性を表示するには、nm - オブジェクト、ライブラリーまたは実行可能ファイルのシンボル・テーブルを表示するを使用してください。

終了値

0
正常終了。
1
以下のいずれかの理由による失敗
  • 抽出ファイルを作成できない。
  • 抽出ファイルの書き込みエラー。
  • 要求されたモジュールが追加部分に見つからない。
  • 追加部分のモジュールのオープン・エラー。
  • 追加部分のモジュールが正しくない。
  • 追加部分のモジュールにアクセスできない。
  • モジュールがテーブルまたは抽出に見つからない。
2
コマンド行の引数またはオプションが正しくない。

移植性

POSIX.2 X/Open 移植性ガイドUNIX システム。

旧バージョンとの互換性のために、オプションがコマンド名の後の最初の引数としてのみ現れる場合は、オプションの前のダッシュを省略することができます。

以下のオプションは、POSIX 標準に対する XPG 拡張です。-a-b-C-i-l-m-q-s、および -t

-F および -i オプションは POSIX および XPG 標準の拡張です。

関連情報

c89makenm