close

Ar (Unix)

Ugrás a navigációhoz Ugrás a kereséshez

Az archiváló (más néven ar ) egy Unix segédprogram , amely a fájlcsoportokat egyetlen archív fájlként karbantartja. Általában az ar a hivatkozásszerkesztő vagy linkelő által használt könyvtárfájlok létrehozására és frissítésére szolgál ; azonban bármilyen más célra használható fájlok létrehozására. Az ar a GNU Binutils egyikeként szerepel .

Archívum létrehozása

Például egy archívum létrehozásához a class1.o , class2.o , class3.o fájlokból a következő parancsot kell használni:

ar rcs libclass.a class1.o class2.o class3.o

A class1.o , class2.o és class3.o függvények programjának összeállításához a következőket teheti:

cc fő.c -L. -l osztály

ahelyett:

cc fő.c osztály1.o osztály2.o osztály3.o

Az -L és -l opciók arra utasítják a linkert, hogy keresse meg a " libclass.a " könyvtárat az aktuális könyvtárban.

Fájlformátum részletei

Az ar formátumot soha nem szabványosították, a modern archívumok egy közös formátumon alapulnak, két ismert változattal, a BSD -vel és a GNU -val .

Történelmileg más változatok is léteztek, köztük az AIX (kicsi), az AIX (nagy) és a Coherent, amelyek jelentősen eltértek az általános formátumtól.

deb fájlok a közös formátumot használják.

Az ar fájl egy globális fejléccel kezdődik, amelyet egy fejléc és egy adatszakasz követ az ar fájlban tárolt minden egyes fájlhoz.

Az adatszakasz 2 bájtos igazítású, ha páratlan periódusban végződne, a "\n" kitöltésként szolgál.

Globális fejléc

A globális fejléc egyetlen mező, amely a "!<arch>" varázslatos ASCII karakterláncot tartalmazza, amelyet egyetlen LF vezérlőkarakter követ.

Fájl fejléc

A közös formátum a következő.

pozícióból felső pozícióban Mező neve Mezőformátum
0 tizenöt fájl név ASCII
16 27 A fájl dátuma Decimális
28 33 Tulajdonos azonosító Decimális
3. 4 39 csoport azonosító Decimális
40 47 fájl mód nyolcas
48 57 A fájl mérete bájtban Decimális
58 59 mágikus fejléc '\n

A fájlnevek formátumának és hosszának korlátozásai miatt mind a GNU, mind a BSD verziók különböző módszereket fejlesztettek ki a kiterjesztett fájlnevek elérésére.

BSD változat

A BSD ar a kiterjesztett fájlneveket úgy tárolja, hogy a "#1/" karakterláncot a fájlnév mezőbe a fájlnév hosszával követi, és a tényleges fájlnevet hozzáfűzi a fájl fejlécéhez.

GNU változat

A GNU ar több kiterjesztett fájlnevet tárol egy "//" nevű fájl adatrészében, erre a rekordra hivatkoznak a jövőbeni fejlécek. A fejléc egy kiterjesztett fájlnévre hivatkozik úgy, hogy a kiterjesztett fájlnév adatrészben a fájlnév elején egy "/" jelet és egy tizedesjegyet tárol.

A GNU ar '/' jelet használ a fájlnév végének jelölésére, ez lehetővé teszi szóközök használatát kiterjesztett fájlnév használata nélkül.

A GNU ar a speciális "/" fájlnevet használja annak jelzésére, hogy a következő bemenet tartalmaz egy szimbólumkereső táblát, amelyet az ar könyvtárakban használnak a hozzáférés felgyorsítására

Lásd még

Külső linkek