NAME¶
ar - crea, modifica ed estrae da archivi
SINTASSI¶
ar [
-X32_64] [
-]
p[
mod [
relpos]
[
count]]
archive [
member...]
DESCRIZIONE¶
Il programma GNU
ar crea, modifica ed estrae da archivi. Un
archivio è un singolo file contenente una collezione di altri file
in una strutura che rende possibile ritrovare i singoli file originari
(chiamati
membri dell'archivio).
I contenuti originali dei file, modi (permessi), data e ora, proprietario, e
gruppo sono preservati nell'archivio, e possono essere ripristinati
all'estrazione.
GNU
ar può mantenere archivi i cui membri hanno nomi di qualsiasi
lunghezza; tutavia, in funzione di come
ar è configurato sul
proprio sistema, un limite sulla lunghezza dei nomi può essere imposto
per compatibilità con formati di archivio mantenuti con altri strumenti.
Se esiste, il limite è spesso di 15 caratteri (tipico di formati relativi
a a.out) o 16 caratteri (tipico di formati relativi a coff).
ar è considerata un'utilità binaria, perché archivi di
questo tipo sono spesso usati come
librerie contenenti subroutine
comunemente necessarie.
ar crea un indice nell'archivio dei simboli definiti in moduli oggetto
rilocabili quando si specifica il modificatore
s. Una volta creato
questo indice è aggiornato nell'archivio qualore
ar appporti un
cambiamento ai suoi contenuti (salva per l'operazione aggiornamento
q).
Un archivio con tale indice velocizza il collegamento alla libreria, e
permette alle routine nella libreria di chiamare le altre senza sapere la loro
posizione nell'archivio.
Si può usare
nm -s o
nm --print-armap per elencare questa
tabella indice. Se a un archivio manca la tabella, può essere usata
un'altra forma di
ar chiamata
ranlib per aggiungere solo la
tabella.
GNU
ar è disegnata per essere compatibile con due differenti
strutture. Si può controllare la sua attività usando opzioni a linea
di comando, come le diverse varietà di
ar su sistemi Unix; o, se
si specifica la singola opzione a linea di comando
-M, la si può
controllare con uno script fornito attraverso lo standard input, come il
programma MRI ``librarian''.
OPZIONI¶
GNU
ar permette di mescolare il codice operazione
p e l'opzione
modificatore
mod in qualunque ordine, all'interno del primo argomento
della linea di comando.
Se lo si desidera, si può cominciare il primo argomento della linea di
comando con un trattino.
La lettera chiave
p specifica quale operazione eseguire; può essere
qualunque delle seguenti, ma se ne deve specificare solo una:
- d
- Cancella moduli dall'archivio. Specifica i nomi dei
moduli da cancellare come membri...; l'archivio non viene toccato
se non si specificano file da cancellare.
se si specifica il modificatore v, ar elenca ciascun modulo
che viene cancellato.
- m
- Usare questa operazione per spostare i membri in un
archivio.
L'ordinamento dei membri in un archivio può creare differenze in come i
programmi sono collegati usando la libreria, se un simbolo è definito
in più di un membro.
Se non sono usati modificatori con "m", tutti i membri che si
nominano negli argomenti member sono spostati alla fine
dell'archivio; si possono usare i modificatori a, b, o
i per spostarli invece in un punto specifico.
- p
- Stampa i membri dell'archivio specificati, sul file
dello standard output. Se è specificato il modificatore v,
visualizza il nome del membro prima di copiare i suoi contenuti sullo
standard output.
Se non si specificano argomenti member, tutti i file nell'archivio
sono stampati.
- q
- Quick append; Storicamente aggiunge i file
membro... alla fine dell' archivio, senza verificare le
sostituzioni.
I modificatori a, b e i non influenzano questa
operazione; nuovi membri sono sempre posti alla fine dell'archivio.
Il modificatore v fa sì che ar elenchi ciascun file
quando viene aggiunto.
Poiché il punto di questa operazione è la velocità, la
tabella indice del simbolo dell'archivio non è aggiornata, anche se
esisteva già; si può usare ar s o ranlib
esplicitamente per aggiornare la tabella indice del simbolo.
Tuttavia, troppi sistemi differenti presumono che l'aggiunta rapida
ricostruisca l'indice, perciò GNU ar implementa q come
sinonimo di r.
- r
- Inserisce i file membri... in archivio (con
sostituzione). Questa operazione differisce da q nel senso
che tutti i precedenti membri esistenti sono cancellati se i loro nomi
corrispondono a quelli che sono stati aggiunti.
Se uno dei file nominati come membri... non esiste, ar
visualizza un messaggio di errore, e lascia indisturbati tutti i membri
esistenti dell'archivio che corrisponde a questo nome.
Per default i nuovi membri sono aggiunti alla fine del file; ma si può
usare uno dei modificatori a, b, o i per richiedere
posizionamenti relativi a qualche membro esistente.
Il modificatore v usato con questa operzione ricava una linea di
output per ciascun file inserito, assieme a una delle lettere a o
r per indicare se il file è stato aggiunto (nessun membro
vecchio cancellato) o sostituito.
- t
- Visualizza una tabella che elenca i contenuti
dell'archivio, o quelli dei file elencati in membro... che
sono presenti nell'archivio. Normalmente è mostrato solo il nome del
membro; se si vogliono anche vedere i modi (permessi), data e ora,
proprietario, grupppo e dimensione, si può richiederlo anche
specificando il modificatore v.
Se non si specifica un membro sono elencati tutti i file
nell'archivio.
Se c'è più di un file con lo stesso nome (cioè, fie)
in un archivio (cioè b.a), ar t b.a fie elenca solo la
prima istanza; per vederle tutte bisogna richiedere l'elenco completo ---
nel nostro esempio, ar t b.a.
- x
- Estrae membri (chiamati membro)
dall'archivio. Si può usare il modificatore v con questa
operazione, per richiedere che ar elenchi ciascun nome quando lo
estrae.
se non si specifica un membro, tutti i file nell'archivio vengono
estratti.
Un numero di modificatori (
mod) può immediatamente seguire la
lettera chiave
p per specificare variazioni nel comportamento di
un'operazione:
- a
- Aggiunge nuovi file dopo un membro esistente
dell'archivio. Se si usa il modificatore a, il nome di un membro di
archivio esistente deve essere presente come argomento relpos,
prima della specificazione dell' archivio.
- b
- Aggiunge nuovi file prima di un membro esistente
dell'archivio. Se si usa il modificatore b, il nome di un membro di
archivio esistente deve essere presente come argomento relpos,
prima della specificazione dell' archivio. (come i).
- c
- Crea l'archivio. L'archivio specificato
è sempre creato se esso non esiste, quando si richiede un
aggiornamento. Ma, usando questo modificatore, viene emesso un avviso, a
meno che non si specifichi in anticipo che si intende crearlo.
- f
- Tronca i nomi nell'archivio. GNU ar normalmente
permetterà nomi di file di qualunque lunghezza. Questo farà si
che vengano creati archivi non compatibili con i programmi ar
nativi di certi sistemi. Se questo è un problema, il modificatore
f può essere usato per troncare i nomi di file quando li si
mette nell'archivio.
- i
- Inserisce nuovi file prima di un membro esistente
dell'archivio. Se si usa il modificatore i, il nome di un membro di
archivio esistente deve essere presente come argomento relpos,
prima della specificazione dell' archivio. (come b).
- l
- Questo modificatore è accettato ma non usato.
- N
- Usa il parametro count. Questo è usato se ci
sono campi multipli nell'archivio con lo stesso nome. Estrae o cancella
l'istanza count del dato nome dall'archivio.
- o
- Preserva le date originali dei memrbi quando li si
estrae. Se non si specifica questo modificatore, i file estratti
dall'archivio sono marcati con l'ora dell'estrazione.
- P
- Usa il nome di percorso completo quando i nomi
dell'archivio corrispondono. GNU ar non può creare un archivio
con un nome di percorso completo (tali archivi non sono conformi a POSIX),
ma altri creatori di archivi possono. Questa opzione fara sì che GNU
ar faccia corrispondere i nomi file usando un nome di percorso
completo, che può essere conveniente quando si estrae un singolo file
da un ardchivio creato da un altro strumento.
- s
- Scrive un indice dei file oggetto nell'archivio, o ne
aggiorna uno esistente, Anche se non vengono apportati altri cambiamenti
all'archivio. Si può usare questo modificatore sia con altre
operazioni sia da solo. Eseguire ar s su un archivio è
equivalente a eseguire ranlib su di esso.
- S
- Non genera una tabella simboli dell'archivio. Questo
può accelerare la costruzione di una grande libreria in molte fasi.
L'archivio risultante non può essere usato con il linker. Per
costruire una tabella simboli bisogna omettere il modificatore S
sull'ultima esecuzione di ar, o bisogna eseguire ranlib
sull'archivio.
- u
- Normalmente ar r... inserisce tutti i file elencati
nell'archivio. se si desidera inserire solo quei file elencati che
sono più nuovi dei membri esistenti dello stesso nome usare questo
modificatore. Il modificatore u è permesso solo per
l'operazione r (sostituzione). In particolare, la combinazione
qu non è permessa, poiché la verifica di data e ora
farebbe perdere ogni vantaggio in velocità dall'operazione
q.
- v
- Questo modificatore richiede la versione prolissa di
un'operazione. Molte operazioni visualizzano informazioni aggiuntive, come
i nomi di file processati, quando viene aggiunto il modificatore
v.
- V
- Questo modificatore mostra il numero di versione di
ar.
ar ignora un'opzione iniziale chiamata
-X32_64, per
compatibilità con AIX. Il comportamento prodotto da questa opzione è
il default per GNU
ar.
ar non supporta nessuna delle altre
opzioni
-X; in particolare, esso non supporta
-X32, che è
il default per AIX
ar.
VEDERE ANCHE¶
nm(1),
ranlib(1), e i campi Info per
binutils.
COPYRIGHT¶
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.1 or any later version
published by the Free Software Foundation; with no Invariant Sections, with no
Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is
included in the section entitled ``GNU Free Documentation License''.