Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Unix :: Standard di input e output in UNIX :: Indice Unix

Standard di input e output in UNIX

Categoria: Unix Inserito il: 15-06-2006 Stampa (18565 click)

All'interno di un sistema UNIX sono presenti e sempre disponibili tre file legati alle funzioni di raccolta degli input e cessione degli output:

  1. stdin, detto anche standard input, cioè il file da cui generalmente un applicativo acquisisce i propri input;
  2. stdout, detto anche standard output, cioè il file su cui generalmente un applicativo genera i propri output;
  3. stderr, detto anche standard error, cioè il file a cui generalmente un applicativo spedisce gli eventuali messaggi di errore.
L'azione svolta da e su questi file riguarda tutti gli applicativi presenti all'interno del sistema operativo e stanno alla base di tutte le operazioni che l'utente svolge attraverso il software disponibile.

Per fare un esempio, un input può essere generato dalla digitazione di un'istruzione attraverso la tastiera, oppure tramite l'esecuzione di un file o da un comando lanciato dall'utente.

Nello stesso modo, un output può concretizzarsi nella stampa a video di una stringa o di un grafico visualizzabile dal monitor, nella creazione di un file a seguito di un comando o all'attivazione di un determinato processo.

Quando viene eseguito un comando, non è necessario che quest'ultimo sia a conoscenza del tipo o della provenienza dell'input nè della destinazione dell'output, sarà invece il sistema stesso a stabilre i diversi collegamenti sulla base delle istruzioni digitate dall'utente.

La Shell di UNIX è perfettamente in grado di gestire gli standard input e output così da specificare la provenienza dell'input e la destinazione dell'output. Facciamo un esempio:
/home/perfavorenonpippo> comando > output
In questo caso, l'output generato dal comando viene reindirizzato all'output, se quest'ultimo non esiste allora verrà creato, diversamente verrà sovrascritto (azione di reindirizzamento).
Per evitare la sovrascrittura del file di output, sarà necessario sostituire l'operatore ">" con ">>", in questo modo il risultato del comando verrà semplicemente "appeso" allo standard di output

Un'altro caso da analizzare è quello relativo all'operatore pipe o "|" (come in less |more):
/home/perfavorenonpippo> comando1 | comando2
In pratica pipe consente di spedire l'output del primo comando all'input del secondo comando, con less |more, ad esempio, il primo comando apre un file per la lettura, il secondo raccoglie l'output del primo comando e accoda il suo output, cioè l'impaginazione dei contenuti del file aperto.

stderr, lo standard error, viene utilizzato per la visualizzazione di notifiche d'errore; generalmente esse compaiono sul monitor ma possono in ogni caso subire un reindirizzamento.

Riprendendo l'operatore ">", possiamo reindirizzare gli standard output ed error verso un medesimo file; oppure, è spossibile separare i due standard in questo modo:
/home/perfavorenonpippo> ( commando > output ) >& error
Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Una funzione in PHP per creare introduzioni agli articoli
Una delle forme più comuni per la presentazione degli articoli di un sito internet è quella di anticipare in Home... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti