Den viktigaste funktionen för C är funktionen main(). Det är mestadels definierat med en returtyp av int och utan parametrar.
int main() { ... }> Vi kan också ge kommandoradsargument i C. Kommandoradsargument är de värden som anges efter programmets namn i kommandoradsskalet i Operativsystem. Kommandoradsargument hanteras av funktionen main() i ett C-program.
För att skicka kommandoradsargument definierar vi vanligtvis main() med två argument: det första argumentet är antal kommandoradsargument och den andra är en lista över kommandoradsargument.
maven installera
Syntax
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }> Här,
- argc (ARGument Count) är en heltalsvariabel som lagrar antalet kommandoradsargument som skickas av användaren inklusive programmets namn. Så om vi skickar ett värde till ett program, skulle värdet på argc vara 2 (ett för argument och ett för programnamn)
- Värdet på argc ska vara icke-negativt. argv (ARGument Vector) är en rad teckenpekare som listar alla argument.
- Om argc är större än noll kommer arrayelementen från argv[0] till argv[argc-1] att innehålla pekare till strängar.
- argv[0] är namnet på programmet, efter det till argv[argc-1] är varje element kommandoradsargument.
För bättre förståelse kör den här koden på din Linux-maskin.
Exempel
Exemplet nedan illustrerar utskriften av kommandoradsargument.
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; }> |
>
>
Produktion
You have entered 4 arguments: ./main geeks for geeks>
för terminalingång
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Notera: Andra plattformsberoende format är också tillåtna enligt C-standarderna; till exempel har Unix (men inte POSIX.1) och Microsoft Visual C++ ett tredje argument som ger programmets miljö, annars tillgängligt via getenv i stdlib.h. Se C-programmet för att skriva ut miljövariabler för detaljer.
Egenskaper för kommandoradsargument i C
- De skickas till main()-funktionen.
- De är parametrar/argument som tillförs programmet när det anropas.
- De används för att styra program utifrån istället för att hårdkoda dessa värden inuti koden.
- argv[argc] är en NULL-pekare.
- argv[0] innehåller programmets namn.
- argv[1] pekar på det första kommandoradsargumentet och argv[argc-1] pekar på det sista argumentet.
Notera: Du skickar alla kommandoradsargument åtskilda av ett mellanslag, men om själva argumentet har ett mellanslag, kan du skicka sådana argument genom att sätta dem inom dubbla citattecken eller enkla citattecken.
Exempel
Nedanstående program visar hur kommandoradsargument fungerar.
C
css understruken text
// 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; }> |
>
>
Utdata i olika scenarier:
1. Utan argument: När ovanstående kod kompileras och exekveras utan att skicka något argument, producerar den följande utdata.
Terminalingång
$ ./a.out>
Produktion
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tre argument: När ovanstående kod kompileras och exekveras med tre argument, producerar den följande utdata.
Terminalingång
$ ./a.out First Second Third>
Produktion
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. Enstaka argument: När ovanstående kod kompileras och körs med ett enda argument separerat med mellanslag men inom dubbla citattecken, producerar den följande utdata.
Terminalingång
$ ./a.out 'First Second Third'>
Produktion
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. Ett enda argument inom citattecken separerade med mellanslag: När ovanstående kod kompileras och körs med ett enda argument separerat med mellanslag men inom enstaka citattecken, producerar den följande utdata.
Terminalingång
$ ./a.out 'First Second Third'>
Produktion
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>