Ar (Unix)
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
- .deb
- fájlformátumok
- UNIX
- Kiegészítés: Unix programok listája
Külső linkek
- ar(1) – Általános parancsok az Ubuntu kézikönyvben
- GNU binutils a man oldal
- Unix Seventh Edition egy man oldal