CMP(P)

NOME
cmp - confronta due file

SINTASSI

cmp [ -l | -s ] file1 file2

DESCRIZIONE

L'utilità cmp confronta due file. L'utilità cmp non emette output se i file sono ugualli. Con le opzioni di default, se essi differiscono, essa scrive sullo standard output il numero di byte e linea al qale è apparsa la prima differenza. Byte e linee devono essere numerati iniziando da 1.

OPZIONI

L'utilità cmp deve essere conforme al volume Base Definitions di IEEE Std 1003.1-2001, Sezione 12.2, Utility Syntax Guidelines.

Devono essere supportate le seguenti opzioni:

-l  (elle minuscola) Scrive il numero di byte (decimale) e i byte diversi (ottale) per ciascuna differenza.

-s  Non scrive nulla per i file differenti; restituisce solo lo stato di uscita.

OPERANDI

Devono essere supportati i seguenti operandi:

file1
    Il percorso del primo file da confrontare. Se file1 è '-' deve essere usato lo standard input.

file2
    Il percorso del secondo file da confrontare. Se file2 è '-' deve essere usato lo standard input.

Se sia file1 che file2 fanno riferimento allo standard input o fanno riferimento allo stesso file speciale di tipo FIFO, a blocchi, o a caratteri, i risultati sono indefiniti.

STDIN

Lo standard input deve essere usato solose gli operandi file1 o file2 fanno riferimento allo standard input. Vedere la sezione FILE DI INPUT.

FILE DI INPUT

I file di input possono essere di qualunque tipo.

VARIABILI D'AMBIENTE

Le seguenti variabili d'ambiente possono influenzare l'esecuzione di cmp:

LANG
    Fornisce un valore di default per le variabili di internazionalizzazione che sono non impostate o nulle. (Vedere il volume Base Definitions di IEEE Std 1003.1-2001, Sezione 8.2, Internationalization Variables per la precedenza delle variabili di internazionalizzazione usate per determinare i valori dele categorie locali).

LC_ALL
    Se impostata ad un valore di stringa non nullo, sovrascrive i valori di tutte le altre variabili di internazionalizzazione.

LC_CTYPE
    Determina la localizzazione per l'interpretazione di sequenze di byte di dati di testo come caratteri (per esempio caratteri a singolo byte e caratteri multi-byte negli argomenti).

LC_MESSAGES
    Determina la localizzazione che deve essere usata per influenzare formato e contenuti dei messaggi di diagnostica scritti sullo standard error.

NLSPATH
    Determina la locazione dei cataloghi messaggi per il processamento di fILC_MESSAGES.

EVENTI ASINCRONI

Default.

STDOUT

Nella localizzazione POSIX i risultati del confronto devono essere scritti sullo standard output. Quando non vengono usate opzioni, il formato deve essere:

    "%s %s differ: char %d, line %d\n", file1, file2,
        <numero byte>, <numero linea>

Quando viene usata l'opzione -l il formato deve essere:

    "%d %o %o\n", <numero byte>, <byte diverso>,
        <byte diverso>

per ciascun byte differente. Il primo numero di <byte differente> è da file1, mentre il secondo è da file2. In entrambi i casi <numero byte> deve essere relativo all'inizio del file, che inizia da 1.

Non deve essere scritto nulla sullo standard output quando è usata l'opzione -s.

STDERR

Lo standard error deve essere usato solo per i messaggi di diagnostica. Se file1 e file2 sono identici per l'intera lunghezza del file più breve, nella localizzazione POSIX deve essere scritto il seguente messaggio di diagnostica, a meno che non venga specificata l' opzione -s:

    "cmp: EOF on %s%s\n", <nome del file più breve>,
    <info aggiuntive>

Il campo <info aggiuntiva> deve essere o nullo o una stringa che inizia con un carattere <blank> e non contiene <newline>. Alcune implementazioni in questo caso riportano il numero di linee.

FILE DI OUTPUT

Nessuno.

DESCRIZIONE ESTESA

Vuoto.

STATO DI USCITA

Devono essere restituiti i seguenti valori di uscita:

0   I file sono identici.

1   I file sono differenti; questo include il caso in cui un file è identico alla pima parte dell'altro.

>1  C'è stato un errore.

CONSEGUENZE DEGLI ERRORI

Default.

Le seguenti sezioni sono informative.

USO DELL'APPLICAZIONE

Sebbene i file di input a cmp possano essere di qualunque tipo, i risultati potrebbero non essere ciò che ci si aspetterebbe su file di dispositivi speciali a caratteri o su tipi di file non descritti dal vollume System Interfaces di IEEE Std 1003.1-2001. Poiché questo volume di IEEE Std 1003.1-2001 non specifica la dimensione del blocco usato quando si fa l'input, il confronto di file di caratteri speciali non ha bisogno di confrontare tutti i caratteri in questi file.

Per file non di testo i numeri di linea riflettono semplicemente la presenza di un carattere <newline>, senza alcuna implicazione che il file sia organizzato in linee.

ESEMPI

Vuoto.

LOGICA

Il linguaggio globale in Utility Description Defaults indica che l'uso contemporaneo di due opzioni mutualmente esclusive produce risultati non specificati. Alcune implementazioni di System V considerano che l'uso dell'opzione:

    cmp -l -s ...

sia un errore. Inoltre esse trattano:

    cmp -s -l ...

come se non fosse specificata alcuna opzione. Entrambi questi comportamenti sono considerati errori, ma sono premessi.

La parola char nel formato dello standard output proviene dall'uso storico, anche se essa attualmente è un numero di byte. Quando cmp è suportato in altre localizzazioni, sono incoraggiate le implementazioni per usare la parola byte o il suo equivalente in un altro linguaggio. Gli utenti non devono interpretare questa differenza per indicare che la funzionalità dell'utilità è cambiata tra le localizzazioni.

Alcune implementazioni riportano i numeri di linea nel file identico ma più breve. Ciò è permesso dall'inclusione dei campi <additional info> nel formato output. La restrizione sull'avere un <blank> iniziale e nessun <newline> è per rendere più semplice l'analisi del nome del file. E' riconosciuto che alcuni nomi di file contengono caratteri spazio che rendono comunque difficile l'analisi, ma la restrizione aiuta i programmi usati in sistemi dove i nomi sono in prevalenza ben scritti.

DIREZIONI FUTURE

Vuoto.

VEDERE ANCHE

comm , diff

COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .