ar 檔案格式,Unix 檔案格式的簡稱,是一種檔案格式,用於將多個檔案收集到單一檔案中,以利儲存和傳輸。它最初是為 Unix 系統開發的,但現在廣泛支援於不同的平台。與較新的檔案和壓縮格式相比,ar 格式較為簡單且有限,但它仍用於某些應用程式。
ar 檔案由一個全域標頭組成,後接一系列檔案標頭和檔案資料。全域標頭是一個簡單的 ASCII 字串,用於識別檔案為 ar 檔案。它包含字元「!<arch>\n」,其中「\n」代表換行字元。這個魔術字串允許公用程式輕鬆辨識 ar 檔案。
在全域標頭之後是個別檔案條目。每個檔案條目都以一個檔案標頭開頭,其中包含關於檔案的元資料。檔案標頭的大小固定為 60 位元組,並包含以下欄位: - 檔案名稱(16 位元組):檔案的名稱,如果短於 16 個字元,則以空格填補。如果名稱較長,則會被截斷,而尾隨的「/」字元表示名稱會繼續出現在檔案資料區段中。 - 修改時間戳記(12 位元組):檔案的最後修改時間戳記,採用十進位 Unix 時間格式,並以空格填補。 - 所有者 ID(6 位元組):檔案所有者的數字使用者 ID,採用十進位,並以空格填補。 - 群組 ID(6 位元組):檔案群組的數字群組 ID,採用十進位,並以空格填補。 - 檔案模式(8 位元組):檔案的權限和模式位元,採用八進位,並以空格填補。 - 檔案大小(10 位元組):檔案資料的大小(以位元組為單位),採用十進位,並以空格填補。 - 標頭結束(2 位元組):字元「\n」,用於標示標頭的結束。
在每個檔案標頭之後,檔案的資料會儲存在檔案中。資料的大小與標頭中指定的檔案大小相符。如果檔案大小為奇數,則會新增一個額外的填補位元組,以確保下一個檔案標頭從偶數位元組邊界開始。這個填補位元組不會計入標頭的檔案大小欄位。
稱為符號表的特殊檔案條目也可以包含在 ar 檔案中。符號表條目的檔案名稱以「/」或「\」開頭,後接一串數字。這些條目包含用於將物件檔案連結在一起的元資料。符號表資料的格式因不同的系統和編譯器而異。
ar 檔案不包含任何內建壓縮。檔案只是以其原始形式串接在一起。但是,ar 檔案中的個別檔案可以在加入檔案之前使用其他演算法(例如 gzip)進行壓縮。