Spiegazione degli argomenti della riga di comando in C
Pubblicato: 2022-04-29Gli argomenti della riga di comando vengono utilizzati quando un programma deve essere controllato dall'esterno anziché dall'interno. È un'interfaccia di testo per sviluppatori in cui gli argomenti vengono passati direttamente al metodo primario.
I valori che vengono passati all'interno di una funzione quando viene chiamata vengono definiti argomenti. In altre parole, un argomento è un parametro che viene passato a un determinato metodo quando viene richiamato.
Sintassi :
int main() { /* … */ }
Il codice precedente riceve il comando e lo passa al sistema operativo del computer per l'esecuzione. Questi comandi vengono sempre invocati durante l'esecuzione di un codice.
Gli argomenti della riga di comando CC e C++ sono piuttosto facili da implementare grazie alla loro semplicità e alle sintassi facilmente decifrabili.
Per passare argomenti della riga di comando, la funzione principale deve essere definita da due argomenti:
- Il numero totale di argomenti della riga di comando
- L'intero elenco di argomenti della riga di comando
Sintassi :
int main(int argc, char *argv[]) { /* … */ }
- argc (ARGument Count) è definito come un tipo di dati intero che memorizza il numero totale di argomenti della riga di comando. Comprensibilmente, questo dovrebbe essere sempre un valore non negativo.
- argv (ARGument Vector) denota una matrice di puntatori del tipo di dati carattere utilizzato per memorizzare l'intero elenco di argomenti della riga di comando.
Con l'aiuto della riga di comando, gli sviluppatori possono accedere a una serie di file e cartelle sui propri computer. Un determinato programma che contiene diversi argomenti della riga di comando può identificare rapidamente le origini o le destinazioni dei dati forniti. Ha anche il potenziale per alterare il funzionamento del programma. Semplifica il processo di costruzione da inserire nel controllo del codice sorgente.
Nel campo dello sviluppo, un'ampia gamma di attività non richiede una visualizzazione effettiva. In questi casi, tutte le funzioni possono essere eseguite con l'aiuto di argomenti della riga di comando. C'è un requisito molto raro per un'interfaccia grafica letterale. Questo aiuta a risparmiare molte finanze, sforzi e risorse.
Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Proprietà | Argomenti della riga di comando in C
Gli argomenti della riga di comando hanno alcune proprietà interessanti e utili. Sono i seguenti:
- Per stampare il nome del programma, il comando deve essere argv[0]
- argv[argc] è essenzialmente un puntatore nullo
- Per stampare il primo argomento fornito dall'utente, il comando deve essere argv[1]
- L'utente passa gli argomenti della riga di comando dal terminale
- L'uso di questi comandi serve per controllare i programmi dall'esterno, invece di dover codificare i valori all'interno del programma
- Gli argomenti della riga di comando vengono sempre passati alla funzione main()
- Il primo argomento di comando land è argv[1], mentre l'ultimo comando è argv[n]
Esempio di argomento della riga di comando
Di seguito è riportato un programma demo per argomenti della riga di comando in C:
// Programma C per illustrare
// argomenti della riga di comando
#include<stdio.h>
int main(int argc,char* argv[])
{
contatore int;
printf("Il nome del programma è: %s",argv[0]);
se(argc==1)
printf("\nNessun argomento aggiuntivo della riga di comando passato oltre al nome del programma");
se(argc>=2)
{
printf("\nNumero di argomenti superati: %d",argc);
printf("\n—-Di seguito sono passati gli argomenti della riga di comando—-");
for(contatore=0;contatore<argc;contatore++)
printf(“\nargv[%d]: %s”,contatore,argv[contatore]);
}
restituire 0;
}
L'uscita varia a seconda dei vari scenari. Sono stati ulteriormente spiegati individualmente.
- Senza argomento:
Per produrre il seguente output, il codice deve essere eseguito senza passare un argomento:
Uscita 1 –
$ ./a.fuori
Il nome del programma è: ./a.out
Nessun argomento aggiuntivo sulla riga di comando passato oltre al nome del programma
- Con tre argomenti:
Per produrre il seguente output, il codice deve essere eseguito con tre argomenti.
Uscita 2 –
$ ./a.out Primo Secondo Terzo
Il nome del programma è: ./a.out
Numero di argomenti superati: 4
—-Di seguito sono passati gli argomenti della riga di comando—-
argv[0]: ./a.out
argv[1]: Primo
argv[2]: Secondo
argv[3]: Terzo
- Con un solo argomento:
Il codice deve essere compilato ed eseguito con un singolo argomento che deve essere separato da uno spazio pur essendo racchiuso tra virgolette per produrre il seguente output.
Uscita 3 –
$ ./a.out "Primo Secondo Terzo".
Il nome del programma è: ./a.out
Numero di argomenti superati: 2
—-Di seguito sono passati gli argomenti della riga di comando—-
argv[0]: ./a.out
argv[1]: Primo Secondo Terzo
- Con un singolo argomento tra virgolette e separato da uno spazio:
Il codice deve essere compilato ed eseguito con un singolo argomento separato da uno spazio ma racchiuso tra virgolette singole per produrre l'output seguente.
Uscita 4 –
$ ./a.out 'Primo Secondo Terzo'
Il nome del programma è: ./a.out
Numero di argomenti superati: 2
—-Di seguito sono passati gli argomenti della riga di comando—-
argv[0]: ./a.out
argv[1]: Primo Secondo Terzo
Vantaggi degli argomenti della riga di comando in C
Ci sono diversi vantaggi nell'usare gli argomenti della riga di comando in C. Sono i seguenti:
- Gli argomenti della riga di comando in C possono essere utilizzati quando un programmatore o un utente desidera passare i valori al programma dall'interno invece di farlo internamente.
- Le applicazioni della riga di comando possono essere facilmente realizzate per essere utilizzate in file batch o script. Questo è di grande aiuto quando si tratta di test o build automatizzati.
- La riga di comando è più facile da sviluppare se i programmatori scrivono gli strumenti invece di usarli. L'immissione di argomenti è considerata un'attività molto più complessa e dispendiosa in termini di tempo rispetto all'output di un flusso di testo.
- I flussi di input, output e di errore possono essere reindirizzati molto facilmente quando è possibile inviare o ricevere informazioni da vari file e applicazioni.
- Il meccanismo di restituzione dell'errore negli argomenti della riga di comando è abbastanza standard e semplice.
- Quando un programmatore o un utente sta cercando di ottenere l'accesso da casa o in viaggio, fondamentalmente mentre è mobile, l'uso su shell remote o altre connessioni simili semplificano notevolmente l'esecuzione delle attività.
- Per la funzione di specificare più file, sono presenti standard di sintassi jolly definiti, che attingono e si basano sulle conoscenze esistenti dello sviluppatore o del programmatore.
- Le linee di comando sono avvincenti ed estremamente veloci.
Parlando di vantaggi in vari argomenti della riga di comando, il seguente è un altro esempio dettagliato o una dimostrazione di come implementarli.
#include <stdio.h>
#includi <conio.h>
//viene chiamato il metodo main a cui gli argomenti della riga di comando vengono passati al programma
int main(int argc, char *argv[])
{
//è definita una variabile intera
int a;
//se viene applicata la condizione per verificare se il conteggio degli argomenti passati al programma è maggiore o uguale a due e se la condizione è vera, vengono stampati gli argomenti della riga di comando passati al programma. In caso contrario, nessun argomento viene passato al programma viene stampato
se(argc >= 2)
{
printf(“Gli argomenti passati al programma sono:\n”);
for(a = 1; a < argc; a++)
{
printf(“L'argomento passato al programma è: %s\t”, argv[a]);
}
}
altro
{
printf("Nessun argomento è passato al programma\n");
}
restituire 0;
}
Produzione:
Nessun argomento viene passato al programma.
Gli argomenti della riga di comando vengono passati al programma nel codice sopra menzionato chiamando il metodo main. Il passo successivo è la definizione di una variabile intera. Successivamente, viene passata la condizione per verificare se il conteggio degli argomenti passati al programma è maggiore o uguale a 2. Gli argomenti della riga di comando passati al programma vengono stampati se la condizione è vera. In caso contrario, nessun argomento viene passato al programma e stampato.
Conclusioni
Scopri di più sull'importanza degli argomenti della riga di comando in C e C++ iscrivendoti al programma Executive PG di upGrad in sviluppo software - specializzazione in sviluppo full stack . Il corso di 13 mesi è progettato per aiutare gli aspiranti professionisti IT a padroneggiare Java, Spring, Hibernate, HTML, React, Git e una gamma di altri linguaggi di programmazione e strumenti per creare applicazioni complesse come Quora e Swiggy.
Il programma offre anche una certificazione esecutiva gratuita di 4 mesi in Data Science e Machine Learning.
Quali sono gli svantaggi di base che devono essere affrontati dai programmatori durante l'implementazione degli argomenti della riga di comando in C?
Anche se gli argomenti della riga di comando in C sono convenienti per sviluppatori e programmatori, presentano alcuni svantaggi. Le persone che non hanno le conoscenze di base e non sono abituate a lavorare con questi comandi possono rivelarsi piuttosto difficili da imparare e a cui adattarsi, soprattutto in un breve periodo. Tuttavia, questo non è un problema per programmatori e sviluppatori esperti. Ma a volte si rivela un ostacolo per i dipendenti più giovani che potrebbero provenire da settori diversi o adiacenti. Inoltre, gli argomenti della riga di comando necessitano di una tastiera per essere implementati ed eseguiti. Questo diventa spesso una barriera se qualcuno ha bisogno di accedervi tramite il proprio telefono o iPad, ecc.
Quali sono i delimitatori utilizzati per separare gli argomenti della riga di comando?
Per separare gli argomenti della riga di comando, vengono generalmente utilizzati spazi vuoti. Separano il nome del comando dai suoi parametri e separano i vari parametri tra loro. Sono anche utili durante la separazione di un elenco di valori diversi. Gli spazi vuoti multipli sono generalmente trattati come un unico bianco. L'unica eccezione a ciò si verifica in una stringa tra virgolette o in un commento racchiuso tra virgolette singole.
È possibile convertire gli argomenti della riga di comando?
Tutti gli argomenti della riga di comando vengono passati come una stringa. I valori numerici devono sempre essere convertiti dai programmatori o dagli utenti nei loro moduli interni, utilizzando uno sforzo manuale. La funzione principale riceve sempre i suoi parametri, che di solito sono un array di stringhe. Questo è l'unico argomento di funzione accettato dalla funzione principale. I tipi di dati stringa sono realizzati per essere utilizzati durante la memorizzazione degli argomenti della riga di comando.