ar (UNIX)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/06 08:46 UTC 版)
![]() |
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2020年12月)
|
UNIXにおけるarchiver(単にarとしても知られる)とは、複数のファイルを一つのアーカイブにまとめるユーティリティである。こんにちにおいて、arは、一般にリンカが使用する静的リンクされたライブラリの生成や更新にのみ利用される。すなわち、arは任意の目的でアーカイブの生成に利用できるが、静的ライブラリの作成を除いてその用途をほとんどtarに取って代わられた。arはGNU Binutilsに含まれるプログラムである。
ファイルフォーマットの詳細
arのファイルフォーマットは一度も標準化されたことがない。現代的なアーカイブは2つの良く知られた派生物で利用される共通フォーマットが基になっている。すなわちBSDとGNUである。
歴史的には、その他変種も存在し、例えばAIX[1]には"Small"[2]、"Big"[3]そして"Coherent"と3つの形式があり、いずれもBSD・GNU共通形式とは全く異なったフォーマットである。
Debian系Linuxディストリビューションのパッケージである".deb"はBSD・GNU共通フォーマットを採用したarアーカイブである。
arが生成するアーカイブの先頭データにはグローバルヘッダが存在し、その後他ヘッダと格納ファイル本体のデータセクションが続く。
データセクションは2バイト毎に切り詰められる。仮にオフセットが奇数で終端をむかえた場合、'\n'が詰め物として利用される。
Win32以降のMicrosoft Windowsの開発環境のライブラリファイル(.lib)も内部的にarフォーマットを使用している。
グローバルヘッダ
グローバルヘッダはマジックアスキー文字列"!<arch>"を含む単一のフィールドであり、その後、制御文字である単一のラインフィード(LF)が続く。
ファイルヘッダ
以下のような共通フォーマットを持つ。
フィールドの開始オフセット | フィールドの終了オフセット | フィールド名 | フィールドフォーマット |
---|---|---|---|
0 | 15 | ファイル名 | ASCII |
16 | 27 | ファイル改変時のタイムスタンプ | 十進数 |
28 | 33 | UID | 十進数 |
34 | 39 | GID | 十進数 |
40 | 47 | ファイルモード | 八進数 |
48 | 57 | ファイルサイズ(バイト) | 十進数 |
58 | 59 | マジックナンバー | 0x60 0x0A |
ファイル名の長さやフォーマットの制限により、GNUとBSDの派生双方で長いファイル名を格納する方法(ただし両者で異なる)が開発されている。
BSDの派生版
BSD arは、文字列"#1/"を配置し、このことにより拡張されたファイル名を格納できる。この文字列の後にファイル名のフィールドにあるファイル名の長さのデータが続き、さらにファイルヘッダの実ファイル名が添加される。
GNUの派生版
GNU arは"//"という名前のレコードを持ち、ファイルのデータセクション上に複数の拡張型ファイル名を格納している。このレコードは将来のヘッダ参照用に確保されている。ヘッダは、レコード"/"の格納によって拡張されたファイル名を参照する。このレコードの後に拡張ファイル名データセクション上に存在するファイル名の先頭十進オフセットが続く。この"//"ファイルのフォーマット自体は単なるロングファイルネームのリストである。各フィールドは1つ以上の文字列LFによってそれぞれ分離される。十進オフセットは文字数であり、"//"ファイル内にある行数や文字列数ではないことに注意しておきたい。
GNU arは'/'をファイル名の終端と認識する。すなわち、これを利用すれば拡張ファイル名を利用することなく、スペースを使用することができる。
GNU arは特殊なファイル名"/"を利用することにより、その直後のデータエントリにarライブラリのアクセス速度を向上するのに利用されるシンボルルックアップテーブルを含めることができる。このシンボルテーブルは隣接データとして同時に記録される以下3つの部分からなる。
- 32ビットビッグエンディアン整数で与えられるテーブル上のエントリー数
- 32ビットビッグエンディアン整数の集まり。各シンボル毎に、シンボルを含むファイル用のヘッダのアーカイブ内の位置を1つずつ記録する。
- 終端が0である文字列の集まり。それぞれシンボル名であり、2番目のデータにある位置のリストとして、同一の順番から成る。
特殊なファイル"/"は、特定の終端文字列を持たない。最後のシンボル名がひとたび読み込まれれば、そこで終了すると仮定される。
別のコマンドとして
ranlibというものがある。これはar s
を実行した場合と完全に等価である。すなわちシンボルルックアップテーブルを追加するだけのコマンドである。
使用例
例えば、ファイル class1.o, class2.o, class3.oからなるアーカイブを作成するには、次のコマンドを実行する。
ar rcs libclass.a class1.o class2.o class3.o
class1.o, class2.o, and class3.oに依存するプログラムをコンパイルするには次を実行する。
cc main.c libclass.a
以上が静的リンクの方法だが、以下のようにライブラリを作成することなくプログラムにコンパイルすることもよく行われる。
cc main.c class1.o class2.o class3.o
脚注
- ^ “ar Command”. IBM. 2011年5月27日閲覧。
- ^ “ar File Format (Small)”. IBM. 2011年5月27日閲覧。
- ^ “ar File Format (Big)”. IBM. 2011年5月27日閲覧。
関連項目
外部リンク
ar
: create and maintain library archives – The Open Group基本仕様書第7号2018年版「シェル及びユーティリティ」ar(1)
– Linux User Commands Manual (en)- FreeBSDマニュアルページ
- UNIX Seventh Editionのar用マニュアルページ
- The 32-bit PA-RISC Run-time Architecture Document, HP-UX 11.0 Version 1.0, Hewlett-Packard, 1997.
Chapter 4: Relocatable Librariesを参照のこと。オンラインでは[1]が利用可能(devresource.hp.com、PDF)。 ranlib(1)
– Linux User Commands Manual (en)
「ar (UNIX)」の例文・使い方・用例・文例
- 米国のCongressは英国のParliamentに相当する
- 7はJanuaryseventhと読む
- バンクーバー― マレーシアに拠点を置くBaronホテルグループはHoward Hotels Internationalを買収する交渉を行っている。
- Baronは、アジアの主要都市に100 を超えるホテルを構える、ビジネスホテルの巨大企業で、高級ホテル市場への進出を目指している。
- Baronが企業買収に成功すれば、同社は、名声を確立したHoward Hotelsブランドやその豪華なおもてなしのノウハウを手に入れることになる。
- Howard Hotelsは、著名なカナダの非上場高級ホテルチェーンで、今のところ、世界展開を手助けしてくれる提携企業を見つけられずにいる。
- 買収がうまくいけば、BaronはHoward Hotelsの株式の65%を所有することになる。
- 今年の1 月まで、「Premiumアイスクリーム」で知られるErnesto Dairyの副社長だったCarla Starkが、4 月20 日付けでHolman Health社の会長に就任することが今日発表された。
- Holman Healthの株主は、StarkがErnestoに行ったのと同じ魔法をかけてくれることを大いに期待していると報じられている。Starkは、Ernestoがグルメアイス市場において驚くべき20%というシェアを獲得することになった「Premiumアイスクリーム」のブランドを作り上げた人物である。
- 11月21日にHolyoke Bar and Grillで、Pete Laurenの退職パーティーが開かれることをお知らせします。11 月10 日までにお返事をください。
- 2月10日の月曜日付けで、Monica RegisがCarla Yuの後任となりました。
- Carla Yuの代わりにMonica Regisに連絡する。
- 昨年までは、Train FirstとTop Shareと契約をしていました。
- GlennはParsons社の社員にとって理想的な就業環境を作ることに力を注いでいます。
- Direct Marketingという会社が、私たちの卸売業者となることに同意してくれました。
- この地域では、Direct Marketingは比較的新しい企業ですが、すでに地元の小売店だけでなく、近隣の州の大小の小売店とも、しっかりとした関係を確立しています。
- Direct Marketingと、円滑で長く続く関係が築けることを期待しています。
- 年次監査を行うために、Bradford and Partnersの会計士たちが10 月10 日の午前10 時に当社を訪ねてくる予定です。
- 許可されているものとされていないものの安全基準は、弊社のウェブサイトwww.air-qatar.comでご確認いただけます。
- Dalton自動車からMark Halliwellを引き抜いてマーケティング部の部長にするって。
- ar (UNIX)のページへのリンク