close

Ar (Unix)

Siirry navigointiin Siirry hakuun

Arkistointityökalu ( tunnetaan myös yksinkertaisesti nimellä ar ) on Unix -apuohjelma , joka ylläpitää tiedostoryhmiä yhtenä arkistotiedostona. Yleensä ar -funktiota käytetään luomaan ja päivittämään kirjastotiedostoja, joita linkkieditori tai linkittäjä käyttää ; sitä voidaan kuitenkin käyttää tiedostojen luomiseen mihin tahansa muuhun tarkoitukseen. ar on mukana yhtenä GNU Binutils .

Arkiston luominen

Esimerkiksi arkiston luomiseen tiedostoista class1.o , class2.o , class3.o käytetään seuraavaa komentoa:

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

Luokasta 1.o , luokka2.o ja luokka3.o riippuva ohjelma voidaan kääntää seuraavasti :

cc main.c -L. -l luokka

sijasta:

cc main.c luokka1.o luokka2.o luokka3.o

Vaihtoehdot -L ja -l käskevät linkittäjän etsimään kirjastoa " libclass.a " nykyisestä hakemistosta.

Tiedostomuodon tiedot

Ar -muotoa ei ole koskaan standardoitu, nykyaikaiset arkistot perustuvat yhteiseen muotoon, jossa on kaksi tunnettua muunnelmaa, BSD ja GNU .

Historiallisesti on ollut muita muunnelmia, mukaan lukien AIX (pieni), AIX (suuri) ja Coherent, jotka poikkesivat merkittävästi yleisestä muodosta.

deb - tiedostot käyttävät yleistä muotoa.

Ar-tiedosto alkaa yleisellä otsikolla, jota seuraa otsikko ja dataosio jokaiselle ar-tiedostoon tallennetulle tiedostolle.

Tietoosio on 2-tavuinen, jos se päättyy parittomaan jaksoon, täytenä käytetään "\n".

Yleinen otsikko

Yleinen otsikko on yksittäinen kenttä, joka sisältää maagisen ASCII-merkkijonon "!<arch>", jota seuraa yksi LF -ohjausmerkki

Tiedoston otsikko

Yleinen muoto on seuraava.

asennosta yläasennossa Kenttä nimi Kentän muoto
0 viisitoista Tiedoston nimi ASCII
16 27 Tiedoston päivämäärä Desimaali
28 33 Omistajan tunnus Desimaali
3. 4 39 ryhmätunnus Desimaali
40 47 tiedostotila oktaali
48 57 Tiedoston koko tavuina Desimaali
58 59 maaginen otsikko '\n

Tiedostonimien muoto- ja pituusrajoitusten vuoksi sekä GNU- että BSD-versiot ovat kehittäneet erilaisia ​​menetelmiä laajennettujen tiedostonimien saavuttamiseksi.

BSD-versio

BSD ar tallentaa laajennetut tiedostonimet asettamalla merkkijonon "#1/" ja sen jälkeen tiedostonimen pituuden tiedostonimikenttään ja lisäämällä todellisen tiedostonimen tiedoston otsikkoon.

GNU variantti

GNU ar tallentaa useita laajennettuja tiedostonimiä tiedoston tietoosioon nimellä "//", tähän tietueeseen viitataan tulevissa otsikoissa. Otsikko viittaa laajennettuun tiedostonimeen tallentamalla "/"-merkin ja sen jälkeen desimaalin tiedostonimen alkuun laajennetun tiedostonimen tietoosiossa.

GNU ar käyttää '/'-merkkiä tiedostonimen lopun merkitsemiseen, jolloin voit käyttää välilyöntejä ilman laajennettua tiedostonimeä.

GNU ar käyttää erityistä tiedostonimeä "/ " merkitsemään, että seuraava syöte sisältää symbolien hakutaulukon, jota käytetään ar-kirjastoissa nopeuttamaan pääsyä

Katso myös

Ulkoiset linkit