НАЗВАНИЕ
ar - формат архивного файла
СИНТАКСИС
#include <ar.h>
ОПИСАНИЕ
Команда позволяет собрать несколько файлов в один архивный файл. Архивы используются в основном как библиотеки об ектных файлов, просматриваемые редактором связей .
Каждый архив начинается с магической цепочки архива.
#define ARMAG "!<arch>\n" /* Магическая цепочка */ #define SAMARG 8 /* Длина магической цепочки */
Архив об ектных файлов обычного формата [см.a.out(4)] включает таблицу имен архива. Она используется редактором связей для определения того, какие элементы архива должны быть включены в результирующую программу при редактировании связей. Таблица имен архива (если она есть) всегда является первым файлом архива, однако не отображается при выдаче оглавления. Она автоматически порождается и корректируется командой .
За магической цепочкой архива следуют файлы - элементы архива. Каждый элемент начинается с заголовка следующего формата:
#define ARFMAG "`\n" /* Ограничитель заголовка */
struct ar_hdr { /* Заголовок элемента архива */ char ar_name [16]; /* Имя элемента (в конце /) */ char ar_date [12]; /* Дата последней модификации */ char ar_uid [6]; /* Идентификатор владельца */ char ar_gid [6]; /* Идентификатор группы */ char ar_mode [8]; /* Режим элемента архива */ char ar_size; /* Длина элемента */ char ar_fmag [2]; /* Ограничитель заголовка */ };
1 Заголовок элемента архива является чисто текстовым. Числовая информация хранится в десятичном виде, за исключением ar_mode - восьмеричного режима доступа к элементу архива. Поэтому, если архив состоит из текстовых файлов, он и в целом является текстовым.
Имя файла в поле ar_name заканчивается символом / и дополняется пробелами. Поле ar_date содержит дату модификации файла на момент его включения в архив. Архивы обычного формата можно перемещать из системы в систему, используя команду . Для переноса архивов специальных форматов их преобразуют к обычному формату посредством команды .
Каждый элемент архива начинается с границы четного байта. Для этого между разделами, если нужно, вставляется символ перевода строки. Длина элемента в поле ar_size отражает точный размер без учета вставок.