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.
È 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 legge da un file il cui nome è dato come argomento, e ne stampa le righe che non cominciano con il carattere '#'