Ар (Юникс)
Архиватор ( также известный как ar ) — это инструмент Unix , который поддерживает группы файлов в виде одного файла архива. В настоящее время arон обычно используется для создания и обновления только файлов библиотек , которые использует компоновщик . Их можно использовать для создания всех видов архивов, но обычно они заменяются форматом файла tarдля целей, выходящих за рамки связывания библиотек. arон включен как один из GNU Binutils .
Примеры
Например, чтобы создать архив из файлов class1.o,,, class2.oнужно class3.oиспользовать следующую команду:
ar rcs libclass.a class1.o class2.o class3.o
чтобы скомпилировать программу, которая зависит от, class1.oи class2.oвы class3.oможете сделать:
cc main.c -L. -lкласс
вместо:
cc main.c class1.o class2.o class3.o
Параметр e указывает компоновщику искать библиотеку "" в текущем каталоге. -L-llibclass.a
Сведения о формате файла
Формат ar никогда не был стандартизирован, последние архивы основаны на общем формате с двумя известными вариантами, BSD и GNU .
Исторически существовали и другие варианты, включая AIX (маленький), AIX (большой) и Coherent, они значительно отличаются от общепринятого формата.
Архивы Deb используют общий формат.
AR-файл начинается с глобального заголовка, за которым следуют заголовок и раздел данных для каждого файла, хранящегося в AR-файле.
Секция данных выравнивается по 2 байтам, если заканчивается нечетным форматом, то заполняется символом "\n".
Глобальный заголовок
Глобальный заголовок — это одно поле, содержащее строку ASCII «! <arch>», за которой следует один управляющий символ LF .
Заголовок файла
Общий формат следующий.
| Смещение поля от | Смещение поля до | Имя поля | Формат поля |
|---|---|---|---|
| 0 | 15 | Имя файла | ASCII |
| 16 | 27 | Дата файла | Десятичный |
| 28 | 33 | Идентификатор владельца | Десятичный |
| 34 | 39 | Идентификатор группы | Десятичный |
| 40 | 47 | Файловый режим | восьмеричный |
| 48 | 57 | Размер файла в байтах | Десятичный |
| 58 | 59 | Магия заголовка | '\ п |
Из-за ограничений на длину и формат файла варианты GNU и BSD используют разные методы для достижения расширенных имен файлов.
Вариант BSD
BSD ars хранит расширенные имена файлов, помещая строку «# 1 /», за которой следует длина имени файла, в поле имени файла и добавляя фактическое имя файла к заголовку файла.
Вариант GNU
GNU ars хранит несколько расширенных имен файлов в разделе данных с именем «//», эта запись относится к последующим заголовкам. Заголовок ссылается на расширенное имя файла, сохраняя «/», за которым следует десятичное смещение в начале имени файла в разделе данных расширенного файла.
GNU ar использует '/' для обозначения конца имени файла, это позволяет использовать пробелы без использования расширенного имени файла.
GNU ar использует специальное имя файла «/», чтобы указать, что следующая информация о данных содержит таблицу поиска символов, которая используется в библиотеках ar для ускорения доступа.
Связанные элементы
Внешние ссылки
- Страница руководства для GNU binutils ar на unixhelp.ed.ac.uk . Проверено 22 апреля 2006 г. (архивировано из оригинала 3 февраля 2006 г.) .
- Страница руководства для Unix Seventh Edition ar на freebsd.org .