Ar (Unix)
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
- GNU binutils ar için kılavuz sayfası , unixhelp.ed.ac.uk adresinde . Erişim tarihi: 22 Nisan 2006 ( 3 Şubat 2006'da orijinalinden arşivlendi ) .
- Unix Seventh Edition'ın ar için kılavuz sayfası , freebsd.org adresinde .