La funzione più importante del C è la funzione main(). È per lo più definito con un tipo restituito int e senza parametri.
int main() { ... }>
Possiamo anche fornire argomenti della riga di comando in C. Gli argomenti della riga di comando sono i valori forniti dopo il nome del programma nella shell della riga di comando dei sistemi operativi. Gli argomenti della riga di comando sono gestiti dalla funzione main() di un programma C.
Per passare argomenti della riga di comando, in genere definiamo main() con due argomenti: il primo argomento è the numero di argomenti della riga di comando e il secondo è a elenco di argomenti della riga di comando.
pitone di inserimento
Sintassi
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>
Qui,
- argc (ARGument Count) è una variabile intera che memorizza il numero di argomenti della riga di comando passati dall'utente incluso il nome del programma. Quindi se passiamo un valore a un programma, il valore di argc sarebbe 2 (uno per l'argomento e uno per il nome del programma)
- Il valore di argc dovrebbe essere non negativo. argv (ARGument Vector) è un array di puntatori di caratteri che elenca tutti gli argomenti.
- Se argc è maggiore di zero, gli elementi dell'array da argv[0] ad argv[argc-1] conterranno puntatori a stringhe.
- argv[0] è il nome del programma, dopodiché fino ad argv[argc-1] ogni elemento è un argomento della riga di comando.
Per una migliore comprensione, esegui questo codice sulla tua macchina Linux.
Esempio
L'esempio seguente illustra la stampa degli argomenti della riga di comando.
C
// C program named mainreturn.c to demonstrate the working> // of command line arguement> #include> // defining main with arguments> int> main(> int> argc,> char> * argv[])> {> > printf> (> 'You have entered %d arguments:
'> , argc);> > for> (> int> i = 0; i printf('%s
', argv[i]); } return 0; }> |
>
>
Produzione
You have entered 4 arguments: ./main geeks for geeks>
per ingresso terminale
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Nota: Gli standard C consentono anche altri formati dipendenti dalla piattaforma; ad esempio, Unix (anche se non POSIX.1) e Microsoft Visual C++ hanno un terzo argomento che fornisce l'ambiente del programma, altrimenti accessibile tramite getenv in stdlib.h. Fare riferimento al programma C per stampare le variabili di ambiente per i dettagli.
Proprietà degli argomenti della riga di comando in C
- Vengono passati alla funzione main().
- Sono parametri/argomenti forniti al programma quando viene invocato.
- Sono utilizzati per controllare i programmi dall'esterno invece di codificare i valori all'interno del codice.
- argv[argc] è un puntatore NULL.
- argv[0] contiene il nome del programma.
- argv[1] punta al primo argomento della riga di comando e argv[argc-1] punta all'ultimo argomento.
Nota: Si passano tutti gli argomenti della riga di comando separati da uno spazio, ma se l'argomento stesso ha uno spazio, è possibile passare tali argomenti inserendoli tra virgolette doppie o virgolette singole.
Esempio
Il programma seguente dimostra il funzionamento degli argomenti della riga di comando.
C
// C program to illustrate> // command line arguments> #include> int> main(> int> argc,> char> * argv[])> {> > printf> (> 'Program name is: %s'> , argv[0]);> > if> (argc == 1)> > printf> (> '
No Extra Command Line Argument Passed '> > 'Other Than Program Name'> );> > if> (argc>= 2) {> > printf> (> '
Number Of Arguments Passed: %d'> , argc);> > printf> (> '
----Following Are The Command Line '> > 'Arguments Passed----'> );> > for> (> int> i = 0; i printf('
argv[%d]: %s', i, argv[i]); } return 0; }> |
>
>
Risultati in diversi scenari:
1. Senza discussione: Quando il codice precedente viene compilato ed eseguito senza passare alcun argomento, produce il seguente output.
Ingresso terminale
$ ./a.out>
Produzione
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tre argomenti: Quando il codice precedente viene compilato ed eseguito con tre argomenti, produce il seguente output.
Ingresso terminale
$ ./a.out First Second Third>
Produzione
Program Name Is: ./a.out Number Of Arguments Passed: 4 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First argv[2]: Second argv[3]: Third>
3. Argomento singolo: Quando il codice precedente viene compilato ed eseguito con un singolo argomento separato da uno spazio ma racchiuso tra virgolette doppie, produce il seguente output.
Ingresso terminale
$ ./a.out 'First Second Third'>
Produzione
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>
4. Un singolo argomento tra virgolette separato da uno spazio: Quando il codice precedente viene compilato ed eseguito con un singolo argomento separato da uno spazio ma racchiuso tra virgolette singole, produce il seguente output.
comando nel nodo js
Ingresso terminale
$ ./a.out 'First Second Third'>
Produzione
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>