ar(5) FreeBSD 一般コマンドマニュアル

ar

前のページ 上に戻る 次のページ

ar




解説

     アーカイブコマンド ar は複数のファイルをひとつにまとめます。アーカイブは
     主にリンクエディタ ld(1) を使ってロードするためのオブジェクトファイルのラ
     イブラリとして使用します。

     ar によって作成されたファイルは ``マジック'' ストリング "!<arch>\n" で始
     まっています。アーカイブの残りはオブジェクトからなり、その各々はファイル
     のヘッダとファイル名 (オプション) とファイルの中身から構成されます。ヘッ
     ダは異なるマシンアーキテクチャ間で互換性のあるもので、ファイルの内容が印
     字可能なものであればアーカイブそのものも印字可能となります。

     ヘッダは、可変長の ASCII のフィールド 6 つとそれに続く2 文字の終端から構
     成されます。フィールドはオブジェクトの名前 (16 文字)、ファイルの最終更新
     時間 (12 文字)、ユーザとグループ ID (各々 6 文字)、ファイルモード (8文
     字)、それにファイルサイズ (10 文字) です。全ての数字フィールドは 10 進数
     ですが、ファイルモードだけは 8 進数です。

     更新時間はファイルの st_mtime フィールドです。すなわち基準時点 (epoch) か
     らの時間 CUT 秒です。ユーザ ID とグループ ID はファイルの st_uidst_gid フィールドです。ファイルモードはファイルの st_mode フィールドで
     す。ファイルサイズはファイルの st_size フィールドです。最後の 2 バイトは
     文字列 "`\n" となります。

     名前のフィールドに限りあふれることが考えられるため、以下のように対応して
     います。もしファイル名の長さが 16 文字を超えるかスペースを含む場合は、名
     前のフィールドには文字列 "#1/" に続いてその名前の ASCII での長さが書き込
     まれます。ファイルサイズ (アーカイブヘッダに書き込まれているもの) にはそ
     の名前の長さが加算されます。そして名前はアーカイブヘッダの直後に書かれま
     す。

     これらのフィールドにおいて使用されていない部分には空白文字が書き込まれま
     す。もしフィールドにその最長の文字数が書き込まれていると、フィールドの間
     の区切りはないことになります。

     アーカイブ中のオブジェクトは常に偶数バイトの長さとなります。ファイルの長
     さが奇数バイトである場合は改行 (``\n'') 文字でパディングされます。その場
     合、ヘッダ中のファイルサイズにはパディングの分は反映されません。


関連項目

     ar(1), stat(2)


歴史

     これまでに少なくとも 4 つの ar フォーマットがありました。最初のものは先頭
     の ``マジック'' ナンバー 0177555 (int 型で書かれていた) で示されていまし
     た。これらのアーカイブはほとんどが 16 ビットマシン上で作られたものであ
     り、ヘッダは 5 つのフィールドから構成されていました。ヘッダのフィールドに
     はオブジェクト名 (8 文字)、ファイルの最終更新時間 (long 型)、ユーザ ID
     (char 型)、ファイルモード (char 型)、そしてファイルサイズ (符号なし int
     型) がありました。ファイルはバイト数で偶数長となるようにパディングされて
     いました。



互換性

     現在アーカイブフォーマットは標準では規定されていません。 AT&T System V
     UNIX では、昔から上述のいずれとも異なるフォーマットのアーカイブで配布され
     ています。

FreeBSD 4.4                      June 9, 1993                      FreeBSD 4.4

ABELNET VPSサービス