C LanguageArgomenti della riga di comando


Sintassi

  • int main (int argc, char * argv [])

Parametri

Parametro Dettagli
argc argomento count - inizializzato sul numero di argomenti separati dallo spazio dati al programma dalla riga di comando e sul nome del programma stesso.
argv vettore di argomento: inizializzato su una matrice di puntatori di char (stringhe) contenenti gli argomenti (e il nome del programma) forniti sulla riga di comando.

Osservazioni

Il programma AC in esecuzione in un "ambiente ospitato" (il tipo normale - al contrario di un "ambiente indipendente") deve avere una funzione main . È tradizionalmente definito come:

int main(int argc, char *argv[])

Si noti che argv può anche essere, e molto spesso, definito come char **argv ; il comportamento è lo stesso. Inoltre, i nomi dei parametri possono essere modificati perché sono solo variabili locali all'interno della funzione, ma argc e argv sono convenzionali e dovresti usare questi nomi.

Per le funzioni main cui il codice non utilizza argomenti, utilizzare int main(void) .

Entrambi i parametri sono inizializzati all'avvio del programma:

  • argc è inizializzato sul numero di argomenti separati dallo spazio dati al programma dalla riga di comando e sul nome del programma stesso.
  • argv è un array di char -pointers (stringhe) contenenti gli argomenti (e il nome del programma) che è stato fornito sulla riga di comando.
  • alcuni sistemi espandono gli argomenti della riga di comando "nella shell", altri no. Su Unix se l'utente digita myprogram *.txt il programma riceverà un elenco di file di testo; su Windows riceverà la stringa " *.txt ".

Nota: prima di utilizzare argv , potrebbe essere necessario controllare il valore di argc . In teoria, argc potrebbe essere 0 , e se argc è zero, allora non ci sono argomenti e argv[0] (equivalente a argv[argc] ) è un puntatore nullo. Sarebbe un sistema insolito con un ambiente ospitato se si è verificato questo problema. Allo stesso modo, è possibile, sebbene molto insolito, che non ci siano informazioni sul nome del programma. In tal caso, argv[0][0] == '\0' - il nome del programma potrebbe essere vuoto.

Supponiamo di iniziare il programma in questo modo:

./some_program abba banana mamajam

Quindi argc è uguale a 4 e gli argomenti della riga di comando:

  • argv[0] punta a "./some_program" (il nome del programma) se il nome del programma è disponibile dall'ambiente host. Altrimenti una stringa vuota "" .
  • argv[1] indica "abba" ,
  • argv[2] indica "banana" ,
  • argv[3] indica "mamajam" ,
  • argv[4] contiene il valore NULL .

Vedi anche What should main() return in C e C ++ per le virgolette complete dallo standard.

Argomenti della riga di comando Esempi correlati