close

Ar (Unix)

Gezinmeye atla Aramaya atla

Arşivleyici ( ar olarak da bilinir ), dosya gruplarını tek bir arşiv dosyası olarak tutan bir Unix aracıdır . Şu anda argenellikle yalnızca bağlayıcının kullandığı kitaplık dosyalarını oluşturmak ve güncellemek için kullanılır. Her türlü arşivi oluşturmak için kullanılabilirler, ancak genellikle kitaplıkları bağlamanın ötesindeki amaçlar için dosya formatı ile değiştirilmiştir. GNU Binutils'den biri olarak dahil edilmiştir . tarar

Örnekler

Örneğin, class1.o,, class2.odosyalarından bir arşiv oluşturmak class3.oiçin aşağıdaki komutu kullanmanız gerekir:

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

bağlı olan bir programı derlemek için class1.oşunları class2.oyapabilirsiniz class3.o:

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 

e parametresi , bağlayıcıya geçerli dizinde "" kitaplığını aramasını söyler. -L-llibclass.a

Dosya biçimi ayrıntıları

ar formatı hiçbir zaman standartlaştırılmamıştır, son 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 başka varyantlar olmuştur, bunlar ortak formattan önemli ölçüde farklılık gösterir.

Deb arşivleri 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 bayta hizalanır, tek bir formatla bitiyorsa "\ n" ile doldurulur.

Genel başlık

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

Dosya Başlığı

Ortak format aşağıdaki gibidir.

Alan Ofseti Alan Ofseti Alan adı Alan Formatı
0 15 Dosya adı ASCII
16 27 dosya tarihi Ondalık
28 33 Sahip kimliği Ondalık
34 39 Grup kimliği Ondalık
40 47 dosya modu Sekizli
48 57 Bayt cinsinden dosya boyutu Ondalık
58 59 başlık büyüsü '\ n

Dosya uzunluğu ve biçimindeki sınırlamalar nedeniyle, hem GNU hem de BSD türevleri, genişletilmiş dosya adlarına ulaşmak için farklı yöntemler kullanır.

BSD varyantı

BSD ars, dosya adı alanına "# 1 /" dizesini ve ardından dosya adı uzunluğunu yerleştirerek genişletilmiş dosya adlarını depolar ve gerçek dosya adını dosya başlığına ekler.

GNU varyantı

GNU ars, veri bölümünde "//" adıyla birden çok genişletilmiş dosya adı depolar, bu kayıt sonraki başlıklara atıfta bulunur. Bir başlık, genişletilmiş dosyanın veri bölümünde dosya adının başlangıcında bir "/" ve ardından bir ondalık uzaklık depolayarak genişletilmiş bir dosya adına başvurur.

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

GNU ar, aşağıdaki veri bilgilerinin, 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.

İlgili öğeler

Dış bağlantılar