Programmi con argomenti

Quando si compila un programma C viene generato un file eseguibile (.exe sotto dos). Questo programma può venire eseguito direttamente scrivendo il suo nome sulla linea di comando (finestra PromptMSDOS sotto Windows). Come è noto, ai programmi eseguibili è possibile passare degli argomenti. Per esempio, il programma copy.exe, che fa parte del sistema operativo, viene eseguito scrivendo due nomi di file dopo il nome del programma. Il programma è in grado di leggere questi due nomi, e comportarsi di conseguenza, copiando il primo file sul secondo. Il punto fondamentale è che un programma esguibile deve in generale essere in grado di poter usare i parametri con cui è stato lanciato, ossia le stringhe che seguono il nome del programma sulla linea di comando.

In C, è possibile accedere a queste informazioni modificando la intestazione della funzione main. I programmi visti fino ad ora usavano una intestazione di questo tipo:

int main() ...

Per poter usare gli argomenti con cui il programma è stato lanciato, questa linea deve diventare:

int main(int argn, char *argv[]) ...

L'effetto di questa modifica è che all'interno del programma risultano definite una variabile di tipo intero argn, e un array di stringhe argv. La variabile intera contiene il numero di argomenti con cui il programma è stato lanciato più uno, quindi è semplicemente il numero di stringhe che si trovano sulla linea di comando. Il vettore di stringhe contiene le varie stringhe che compongono la linea di comando: in particolare, argv[0] è il nome del programma stesso, mentre argv[1] è il suo primo argomento, argv[2] è il secondo, ecc.

Le pagine seguenti mostrano come si possono usare queste variabili.

  1. trovare il numero di argomenti ricevuti
  2. determinare gli argomenti ricevuti
  3. scrivi la metà di un numero su file
  4. copia di file
  5. estensione di un file

È possibile modificare tutti i programmi sui file in modo tale che il nome del file (o dei file, se sono più di uno) su cui operano venga passato come argomento al programma. Ad esempio, il programma commenti.c legge da un file il cui nome è dato come argomento, e ne stampa le righe che non cominciano con il carattere '#'

Tutto il capitolo in una pagina   Versione postscript   Versione PDF