close

Ar (Unix)

Navigasyona git Aramaya git

Arşivleyici (ayrıca kısaca ar olarak da bilinir), dosya gruplarını tek bir arşiv dosyası olarak tutan bir Unix yardımcı programıdır . Genellikle ar , bağlantı düzenleyicisi veya bağlayıcı tarafından kullanılan kitaplık dosyalarını oluşturmak ve güncellemek için kullanılır ; ancak, başka herhangi bir amaç için dosya oluşturmak için kullanılabilir. ar , GNU Binutils'den biri olarak dahil edilmiştir .

Arşiv oluşturma

Örneğin, class1.o , class2.o , class3.o dosyalarından bir arşiv oluşturmak için aşağıdaki komut kullanılır:

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

class1.o , class2.o ve class3.o'ya bağlı bir programı derlemek için şunları yapabilirsiniz:

cc ana.c -L. -l sınıfı

onun yerine:

cc ana.c sınıf1.o sınıf2.o sınıf3.o

-L ve -l seçenekleri , bağlayıcıya geçerli dizinde " libclass.a " kitaplığını aramasını söyler.

Dosya biçimi ayrıntıları

ar formatı hiçbir zaman standartlaştırılmamıştır, modern arşivler, bilinen iki varyantı olan BSD ve GNU ile ortak bir formata dayanmaktadır .

Tarihsel olarak, AIX (küçük), AIX (büyük) ve Tutarlı dahil olmak üzere, ortak formattan önemli ölçüde farklılık gösteren başka varyantlar olmuştur.

deb dosyaları ortak biçimi kullanır.

Bir ar dosyası, genel bir başlıkla başlar, ardından ar dosyasında depolanan her dosya için bir başlık ve veri bölümü gelir.

Veri bölümü 2 bayt hizalıdır, tek bir nokta ile bitecekse dolgu olarak bir "\n" kullanılır.

Genel başlık

Genel başlık, sihirli ASCII dizesi "!<arch>" ve ardından tek bir LF kontrol karakterini içeren tek bir alandır

Dosya başlığı

Ortak format aşağıdaki gibidir.

pozisyondan yukarı pozisyon Alan adı Alan Formatı
0 on beş dosya adı ASCII
16 27 dosya tarihi Ondalık
28 33 Sahip kimliği Ondalık
3. 4 39 Grup kimliği Ondalık
40 47 dosya modu sekizli
48 57 Bayt cinsinden dosya boyutu Ondalık
58 59 sihirli başlık '\n

Dosya adı formatı ve uzunluk sınırlamaları nedeniyle, hem GNU hem de BSD sürümleri, genişletilmiş dosya adlarına ulaşmak için farklı yöntemler geliştirmiştir.

BSD varyantı

BSD ar, dosya adı alanına dosya adının uzunluğunu takip eden "#1/" dizesini yerleştirerek ve gerçek dosya adını dosya başlığına ekleyerek genişletilmiş dosya adlarını depolar.

GNU varyantı

GNU ar, "//" adlı bir dosyanın veri bölümünde birkaç genişletilmiş dosya adını depolar, bu kayda gelecekteki başlıklar tarafından başvurulur. Bir başlık, genişletilmiş dosya adı verileri bölümünde dosya adının başında bir "/" ve ardından bir ondalık konum depolayarak genişletilmiş bir dosya adına başvurur.

GNU ar, dosya adının sonunu işaretlemek için bir '/' kullanır, bu, genişletilmiş bir dosya adı kullanmadan boşluk kullanmanıza izin verir.

GNU ar, bir sonraki girdinin, erişimi hızlandırmak için ar kitaplıklarında kullanılan bir sembol arama tablosu içerdiğini belirtmek için "/" özel dosya adını kullanır.

Ayrıca

Dış bağlantılar