mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

AR(1)                                                     AR(1)

НАЗВАНИЕ 
        ar - обслуживание мобильных архивов и библиотек

СИНТАКСИС 
        ar  [-][d][r][q][t][p][m][x][v][c][l][s] [позиционирующее_имя]
            а_файл [имя ...]

ОПИСАНИЕ 
        Команда ar предоставляет средства  обслуживания  группы
        файлов, об единенных в один архивный файл.  Применяется
        главным образом для создания и  изменения  библиотечных
        файлов, используемых редактором  связей.  Может  приме-
        няться и для других подобных целей. Магические  цепочки
        и заголовки файлов состоят из  печатаемых  ASCII-симво-
        лов, так что если в состав архива входят только печата-
        емые файлы, то и архив в целом окажется печатаемым.

        При создании архива командой ar заголовки файлов  стро-
        ятся в формате, не зависящем от конкретной машины. Фор-
        мат и структура мобильного архива  подробно  описаны  в
        ar(4). Таблица имен архива (описанная там же) использу-
        ется редактором связей  [ld(1)]  для  сокращения  числа
        проходов по библиотекам об ектных  файлов.  Команда  ar
        создает и поддерживает таблицу имен только при  наличии
        в архиве хотя бы одного об ектного файла. Таблица  имен
        в случае ее создания помещается в начале архива  в  ка-
        честве файла с особым именем. Ни ссылка на  этот  файл,
        ни доступ к нему для пользователя невозможны. При  соз-
        дании или изменении архива командой ar(1) таблица  имен
        всякий раз перестраивается. Таблицу имен можно  перест-
        роить принудительно,  воспользовавшись  описанной  ниже
        опцией s.

        В отличие от командных опций командный ключ  составляет
        обязательную часть командной строки ar. Ключ  (которому
        может предшествовать символ -) представляет собой  один
        из символов набора drqtpmx. Аргументами же ключа  могут
        служить один или несколько символов из набора vuaibcls.
        Позиционирующее_имя - это имя элемента архива,  которое
        используется в качестве указателя конкретного места ар-
        хива, куда должны помещаться другие файлы. А_файл - это
        имя архивного файла. Под именами подразумеваются  имена
        файлов, входящих в архив.  Символам,  образующим  ключ,
        приписан следующий смысл:

        d    Удалить указанные файлы из архива.

        r    Заменить указанные файлы в архиве.  Если  в  ключе
             наряду с r присутствует необязательный  символ  u,
             то замена будет произведена только для тех из ука-
             занных файлов, у которых дата последней  модифика-
             ции превышает соответствующую дату  у  одноименных
             файлов, хранящихся в архиве.  Если  ключ  содержит
             признак позиционирования, т.е.  один  из  необяза-
             тельных символов abi, то  в  команде  должен  при-
             сутствовать аргумент позиционирующее_имя и в  этом
             случае все новые файлы будут помещаться  перед  (b
             или i) или вслед за (a) файлом с таким именем. При
             отсутствии признака позиционирования  новые  файлы
             будут помещаться в конец архива.

        q    Быстро поместить указанные файлы в  конец  архива.
             Использование символов позиционирования недопусти-
             мо. Проверка, имеются ли уже  в  архиве  указанные
             файлы, командой не осуществляется. Данная  возмож-
             ность полезна  только  для  того,  чтобы  избежать
             квадратичного роста временных затрат при наращива-
             нии больших архивов. Отказ от проверок может, нап-
             ротив, повести к росту размеров архивного файла.

        t    Вывести оглавление архива. Если имена не  указаны,
             перечисляются все файлы архива; если имена  указа-
             ны, выводятся только они.

        p    Напечатать указанные файлы из архива.

        m    Переместить указанные файлы в конец  архива.  Если
             ключ содержит признак позиционирования, то  в  ко-
             манде должен присутствовать аргумент позиционирую-
             щее_имя, и тогда место, куда  перемещаются  файлы,
             будет определяться так же, как и для опции r.

        x    Извлечь указанные файлы из архива  и  поместить  в
             текущий каталог. Если имена не указаны, извлекают-
             ся все содержащиеся в архиве  файлы.  Операция  не
             изменяет архивный файл.

        Аргументам ключа приписан следующий смысл:

        v    Вывести подробное, файл за файлом, описание проце-
             дуры создания нового архивного  файла  из  старого
             архива и указанных в  команде  файлов-компонентов.
             При совместном использовании ключа t и аргумента v
             выводится подробная информация о каждом файле. При
             совместном использовании x и v по мере  извлечения
             файлов будут выводиться их имена.

        c    Подавить сообщение, выдаваемое обычно при создании
             а_файла.

        l    Помещать временные файлы в локальный (текущий  ра-
             бочий) каталог, а не в  подразумеваемый  временный
             каталог TMPDIR.

        s    Принудительно регенерировать таблицу имен  архива,
             даже если вызов ar(1) не предусматривает модифика-
             ции содержимого архива. Эта  команда  полезна  при
             восстановлении таблицы имен после применения к ар-
             хиву команды strip(1).

ФАЙЛЫ 
        TMPDIR/*        Временные файлы.

        Обычно  каталог  TMPDIR  -  это /usr/tmp, однако данное
        соглашение можно изменить, присвоив переменной  окруже-
        ния TMPDIR другое значение [см. tempnam в tmpnam(3S)].

СМ. ТАКЖЕ 
        ld(1), lorder(1), strip(1).
        tmpnam(3S), a.out(4), ar(4) в Справочнике программиста.

ПРИМЕЧАНИЯ 
        Если один и тот же файл упомянут  в  списке  аргументов
        дважды, он может быть дважды и помещен в архив.



AR(4)                                                     AR(4)

НАЗВАНИЕ 
        ar - формат архивного файла

СИНТАКСИС 
        #include 

ОПИСАНИЕ 
        Команда ar(1) позволяет собрать несколько файлов в один
        архивный файл. Архивы используются в основном как  биб-
        лиотеки объектных  файлов,  просматриваемые  редактором
        связей ld(1).

        Каждый архив начинается с магической цепочки архива.

        #define ARMAG "!\n" /* Магическая цепочка */
        #define SAMARG 8         /* Длина магической цепочки */

        Архив объектных файлов обычного  формата  [см.a.out(4)]
        включает таблицу имен архива. Она используется редакто-
        ром связей ld(1) для определения того,  какие  элементы
        архива должны быть включены в результирующую  программу
        при редактировании связей. Таблица  имен  архива  (если
        она есть) всегда является первым файлом архива,  однако
        не отображается при выдаче оглавления. Она автоматичес-
        ки порождается и корректируется командой ar(1).

        За  магической цепочкой архива следуют файлы - элементы
        архива. Каждый элемент начинается с заголовка следующе-
        го формата:

        #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];  /* Ограничитель заголовка */
        };

        Заголовок элемента  архива  является  чисто  текстовым.
        Числовая информация хранится в десятичном виде, за иск-
        лючением ar_mode - восьмеричного режима доступа к  эле-
        менту архива. Поэтому, если архив состоит из  текстовых
        файлов, он и в целом является текстовым.

        Имя файла в поле ar_name заканчивается символом / и до-
        полняется пробелами. Поле ar_date содержит дату модифи-
        кации файла на момент его  включения  в  архив.  Архивы
        обычного формата можно перемещать из системы в систему,
        используя команду ar(1). Для переноса архивов специаль-
        ных форматов их преобразуют  к  обычному  формату  пос-
        редством команды conv(1).

        Каждый элемент архива начинается с границы четного бай-
        та. Для этого между разделами, если нужно,  вставляется
        символ перевода строки. Длина элемента в  поле  ar_size
        отражает точный размер без учета вставок.

        Если архив включает таблицу имен,  первый  файл  архива
        имеет имя нулевой длины (ar_name [0] == '/') и содержит
        следующую информацию:

        1.   Количество имен (занимает 4 байта).

        2.   Массив смещений в архивном файле  [занимает  (4  *
             количество имен) байт].

        3.   Таблица цепочек символов - имен  элементов  архива
             (занимает остаток файла).

        Таблица цепочек (ограниченных нулевым байтом) и  массив
        смещений содержат равное число элементов. Каждое смеще-
        ние связано с соответствующей по  порядку  цепочкой.  В
        таблице цепочек перечислены все глобальные имена, опре-
        деленные во всех файлах архива. Смещение определяет по-
        ложение архивного заголовка файла,  содержащего  данное
        глобальное имя.

СМ. ТАКЖЕ 
        a.out(4).
        ar(1), ld(1), strip(1) в Справочнике пользователя.

ОГРАНИЧЕНИЯ 
        Команда strip(1) удаляет все элементы таблицы имен. Для
        использования редактора связей ld(1) их надо  восстано-
        вить с помощью команды ar -ts.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк