logo

Kommandolinjeargumenter i C

Den viktigste funksjonen til C er hovedfunksjonen (). Det er stort sett definert med en returtype int og uten parametere.

int main() { ... }>

Vi kan også gi kommandolinjeargumenter i C. Kommandolinjeargumenter er verdiene gitt etter navnet på programmet i kommandolinjeskallet til Operativsystemer. Kommandolinjeargumenter håndteres av hovedfunksjonen () til et C-program.



For å sende kommandolinjeargumenter, definerer vi vanligvis main() med to argumenter: det første argumentet er antall kommandolinjeargumenter og den andre er en liste over kommandolinjeargumenter.

svevende css

Syntaks

int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>

Her,

    argc (ARGument Count) er en heltallsvariabel som lagrer antall kommandolinjeargumenter som sendes av brukeren, inkludert navnet på programmet. Så hvis vi sender en verdi til et program, vil verdien av argc være 2 (en for argument og en for programnavn)
  • Verdien av argc skal være ikke-negativ.
  • argv (ARGument Vector) er en rekke tegnpekere som viser alle argumentene.
  • Hvis argc er større enn null, vil matriseelementene fra argv[0] til argv[argc-1] inneholde pekere til strenger.
  • argv[0] er navnet på programmet, etter det til argv[argc-1] er hvert element kommandolinjeargumenter.

For bedre forståelse kjør denne koden på din Linux-maskin.



Eksempel

Eksempelet nedenfor illustrerer utskrift av kommandolinjeargumenter.

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; }>

>

>

Produksjon

You have entered 4 arguments: ./main geeks for geeks>

for terminalinngang

$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>

Merk: Andre plattformavhengige formater er også tillatt av C-standardene; Unix (men ikke POSIX.1) og Microsoft Visual C++ har for eksempel et tredje argument som gir programmets miljø, ellers tilgjengelig gjennom getenv i stdlib.h. Se C-programmet for å skrive ut miljøvariabler for detaljer.

Egenskaper til kommandolinjeargumenter i C

  1. De sendes til hoved()-funksjonen.
  2. De er parametere/argumenter som leveres til programmet når det påkalles.
  3. De brukes til å kontrollere programmer utenfra i stedet for å hardkode disse verdiene inne i koden.
  4. argv[argc] er en NULL-peker.
  5. argv[0] inneholder navnet på programmet.
  6. argv[1] peker på det første kommandolinjeargumentet og argv[argc-1] peker på det siste argumentet.

Merk: Du sender alle kommandolinjeargumentene atskilt med et mellomrom, men hvis selve argumentet har et mellomrom, kan du sende slike argumenter ved å sette dem innenfor doble anførselstegn eller enkle anførselstegn .

Eksempel

Programmet nedenfor viser hvordan kommandolinjeargumenter fungerer.

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; }>

>

>

Utgang i forskjellige scenarier:

1. Uten argument: Når koden ovenfor er kompilert og utført uten å sende noe argument, produserer den følgende utgang.

Terminalinngang

kjerne java
$ ./a.out>

Produksjon

Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>

2. Tre argumenter: Når koden ovenfor er kompilert og utført med tre argumenter, produserer den følgende utgang.

Terminalinngang

$ ./a.out First Second Third>

Produksjon

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. Enkeltargument: Når koden ovenfor er kompilert og utført med et enkelt argument atskilt med mellomrom, men innenfor doble anførselstegn, produserer den følgende utgang.

Terminalinngang

$ ./a.out 'First Second Third'>

Produksjon

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. Et enkelt argument i anførselstegn atskilt med mellomrom: Når koden ovenfor er kompilert og utført med et enkelt argument atskilt med mellomrom, men innenfor enkle anførselstegn, produserer den følgende utgang.

Terminalinngang

$ ./a.out 'First Second Third'>

Produksjon

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>