Se tu specifichi sulla riga di comando
ti ritroverai argv={"GrammarReader", "nomefile", NULL} e argc=2codice:GrammarReader nomefile
Infatti:
- argc conta il numero di elementi validi in argv;
- argv[0] contiene sempre il nome dell'eseguibile (in qualche forma);
- c'è sempre un NULL a terminare argv.
Quindi, per processare quella linea di comando:
- devi verificare che argc sia almeno 2
- devi aprire uno stream al file il cui nome è contenuto in argv[1].
In ogni caso, sono tutte cose spiegate all'inizio di qualunque manuale di C, a cui ti rimando per ulteriori approfondimenti.