Ar (Unix)
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
- .deb
- dosya formatları
- UNIX
- Ek: Unix programlarının listesi
Dış bağlantılar
- ar(1) – Ubuntu Kılavuzundaki genel komutlar
- GNU binutils ar man sayfası
- Unix Yedinci Baskı ar man sayfası