Ar (Unix): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nur (discussione | contributi)
Corretto: "delle limitazioni"
 
(19 versioni intermedie di 15 utenti non mostrate)
Riga 1:
{{Titolo minuscolo}}
L' '''archiver''' (noto anche come '''ar''') è un tool [[Unix]] che mantiene gruppi di file come un unico file di archivio. Oggi,Attualmente <ttkbd>ar</ttkbd> è solitamente utilizzato per creare ed aggiornare solamente file di [[libreria software|libreria]] che il [[linker]] usa;. Possono essere utilizzati per creare archivi di ogni genere, ma è stato generalmente rimpiazzato dal formato di file [[TARtar (software)|<ttkbd>tar</ttkbd>]] Perper scopi che vanno oltre il linking di librerie. <ttkbd>ar</ttkbd> è incluso come unouna delle [[GNU Binutils]].
 
==Esempi==
Per esempio, per creare un archivio dai file <ttkbd>class1.o</ttkbd>, <ttkbd>class2.o</ttkbd>, <ttkbd>class3.o</ttkbd>, bisogna usare il seguente comando:
ar rcs libclass.a class1.o class2.o class3.o
 
per compilare un programma che dipende da <ttkbd>class1.o</ttkbd>, <ttkbd>class2.o</ttkbd>, and <ttkbd>class3.o</ttkbd> si può fare:
 
cc main.c -L. -lclass
 
invece di:
cc main.c class1.o class2.o class3.o
 
Il [[Parametro (programmazione)|parametro]] <ttkbd>-L</ttkbd> e <ttkbd>-l</ttkbd> istruisce il linker per cercare la libreria "<ttkbd>libclass.a</ttkbd>" nella directory corrente.
 
==Dettagli sul formato del file==
Line 18 ⟶ 24:
Un file ar inizia con una intestazione globale, seguita da una sezione di intestazione e dati per ogni file immagazzinato nel file ar.
 
La sezione di dati è allineata su 2 byte, se finisce con un formato dispari si riemperiempie con un "\n".
 
===Intestazione globale===
L'intestazione globale è un singolo campo che contiene la stringa ASCII magica "!<arch>" seguita da un singolasingolo carattere di controllo [[LineCarattere feeddi controllo|LF]] carattere di controllo.
 
===Intestazione di File===
Line 69 ⟶ 75:
|}
 
Per colpa delle limitazionelimitazioni sulla lunghezza e il formato dei file, sia la varianti GNU eche BSD utilizzano metodi differenti per raggiungere nomi di file estesi.
 
Per colpa delle limitazione sulla lunghezza e il formato dei file, sia la varianti GNU e BSD utilizzano metodi differenti per raggiungere nomi di file estesi.
 
====Variante BSD====
Line 78 ⟶ 83:
Gli ar GNU immagazzinano più nomi di file estesi nella sezione dei dati con il nome "//", questo record si riferisce a intestazioni successive. Una intestazione referenzia un nome di file esteso immagazzinando un "/" seguito da uno spiazzamento decimale all'inizio del nome del file nella sezione dei dati del file esteso.
 
L' ar GNU usa un '/' per segnare la fine di un nome di file, questo permette l'uso di spazi senza l'uso di un filename esteso.
 
L'ar GNU usa il nome di file speciale "/ " per far notare che le seguenti informazioni sui dati contengono una tabella di lookup di simboli, che viene usata nelle librerie ar per velocizzarne l'accesso
Line 85 ⟶ 90:
*[[deb]]
*[[Compressione dei dati]]
*[[tar (software)]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* [{{cita web |1=http://unixhelp.ed.ac.uk/CGI/man-cgi?ar |2=Manual page for GNU binutils ar] |accesso=22 aprile 2006 |urlarchivio=https://web.archive.org/web/20060203211458/http://unixhelp.ed.ac.uk/CGI/man-cgi?ar |dataarchivio=3 febbraio 2006 |urlmorto=sì }}
* [http{{cita web|url=https://www.freebsd.org/cgi/man.cgi?query=ar&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&format=html |titolo=Manual page for Unix Seventh Edition's ar]}}
 
{{portale|informatica}}
[[Categoria:Unix]]
 
[[deCategoria:Ar (Unix)Binutils]]
[[enCategoria:ArComandi (Unix)]]
[[es:Ar (Unix)]]
[[gl:Ar, Unix]]
[[pl:Ar (informatyka)]]
[[ru:Ar]]