Prendere parametri da riga di comando
Da Hacknowledge.
Talvolta è molto comodo passare alle nostre applicazioni dei parametri da riga da comando. L'esempio più classico è quello del comando ls su sistemi Unix (corrispettivo di dir su DOS), che può prendere come parametro la directory di cui si vuole visualizzare il contenuto:
ls /home --- Qui viene stampato il contenuto di /home
Si può fare una cosa del genere anche nelle nostre applicazioni. Il metodo standard è quello di richiamare il main() del nostro programma con due parametri aggiuntivi:
- argc - di tipo int
- argv - un array di stringhe
Gli argomenti passati alla nostra applicazione verranno piazzati nell'array di stringhe argv, mentre invece il numero di argomenti passati sarà indicato dall'intero argc:
main (int argc, char **argv)
Il primo elemento del vettore di stringhe argv (argv[0]) conterrà sempre il nome dell'applicazione in esecuzione, e quindi argc sarà sempre almeno uguale a 1 (in quanto argv conterrà sempre almeno un valore). Da argv[1] in poi verranno indicati gli argomenti aggiuntivi passati alla nostra applicazione. Esempio pratico:
#include <stdio.h> main (int argc, char **argv) { int i; printf ("In esecuzione: %s\n",argv[0]); // Stampo tutti gli argomenti passati al programma for (i=1; i<argc; i++) printf ("Argomento n.%d: %s\n",i,argv[i]); }

