Elaborazione della riga di comando
Esecuzione di un programma tramite riga di comando
Un caso tipico di utilizzo di array di stringhe si ha quando il sistema operativo passa a un programma una serie di parametri, elencati nella riga di comando.
Es.: copy file1 file2 copy é il programma file1 e file2 sono i parametri Anche un programma scritto in C++ (e trasformato dall'ambiente di sviluppo in un modulo eseguibile) può essere lanciato da sistema operativo come se fosse un comando, e può essere accompagnato da parametri. Il C++ (come il C) si incarica di trasformare tali parametri in argomenti trasmessi alla funzione main, per modo che il programma possa elaborarli.
Argomenti passati alla funzione main
Finora abbia supposto che il main fosse una funzione priva di argomenti. In realtà il sistema operativo passa al main un certo numero di argomenti, di cui, in questo caso, ci interessano i primi due:
int argc numero di voci presenti nella riga di comando (compreso lo stesso nome del programma)
char** argv array di stringhe, in cui ogni elemento corrisponde a una voce della riga di comando (in fondo viene aggiunta una stringa NULL)
Pertanto, se il programma deve utilizzare dei parametri, il main va definito come segue:
int main(int argc, char** argv)Per esempio, se la riga di comando contiene: copy file1 file2
argc contiene il numero 3 argv[0] contiene la stringa "copy" argv[1] contiene la stringa "file1" argv[2] contiene la stringa "file2" argv[3] contiene NULL