Home
Accesso / Registrazione
 di 

Programmare in C - Argomenti da linea di comando

Guida C

Il linguaggio C dispone di un meccanismo semplice per recuperare i parametri passati da linea di comando (inseriti dall'utente da linea di comando).

A disposizione della funzione main vi è un parametro chiamato argv. La struttura argv compare ed è gestita da un numero molto elevato di chiamate a librerie avanzate. Si consiglia di cercare di capire a fondo cosa contiene la struttura argv.

#include <stdio.h>

int main(int argc, char *argv[])
{
    int x;

    printf("%d\n",argc);
    for (x=0; x

In questo codice, il programma principale (main) accetta in input due parametri, argv e argc. Il parametro argv è un array di puntatori a stringa che contiene i parametri utilizzati al momento dell'invocazione del programma da linea di comando. L'intero argc contiene il numero di parametri passati.

Il programma precedente non fa altro che stampare i comandi passati a linea di comando. Per verificare, provate a compilare il suddetto codice in un file eseguibile chiamato aaa e digitate quindi aaa xxx yyy zzz. Il codice stamperà i parametri da linea di comando xxx, yyy, zzz uno per ogni linea.

Invece, char *argv[] è un array di puntatori a stringa. In altre parole, ogni elemento dell'array è un puntatore e ogni puntatore punta a una stringa (tecnicamente, il primo carattere della stringa). Pertanto, argv[0] punta a una stringa che contiene il primo parametro della linea di comando (ossia il nome del programma), argv[1] punta al parametro successivo e così via. La variabile argc ci dice quandi puntatori dell'array sono validi.

Poiché argv esista, si può _ quando necessario – far rispondere il programma in base ai valori inseriti da linea di comando. Per esempio, supponiamo di voler fare in modo che il programma riconosca la parola help come primo parametro successivo al nome del programma e effettuiamo il dump di un file di help sullo standard output. I nomi dei file possono essere passati come parametri per essere anche utilizzati in istruzioni fopen.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Andrea Mazzeo

parametri passati come argomenti

Ciao,
sui sistemi unix esiste la funzione getopt() che fa anche il parsing degli argomenti, molto utile per specificare "cosa" gli stai passando e trascurando la sequenza.

Ciao,
Andrea

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ultimi Commenti