Najdôležitejšou funkciou C je funkcia main(). Väčšinou je definovaný s návratovým typom int a bez parametrov.
int main() { ... }>
Argumenty príkazového riadka môžeme zadať aj v jazyku C. Argumenty príkazového riadka sú hodnoty uvedené za názvom programu v príkazovom riadku operačného systému. Argumenty príkazového riadku sú spracované funkciou main() programu C.
Na odovzdanie argumentov príkazového riadka zvyčajne definujeme main() dvoma argumentmi: prvý argument je počet argumentov príkazového riadku a druhý je a zoznam argumentov príkazového riadku.
trie dátovú štruktúru
Syntax
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>
Tu,
- argc (ARGument Count) je celočíselná premenná, ktorá uchováva počet argumentov príkazového riadka odovzdaných používateľom vrátane názvu programu. Ak teda odovzdáme hodnotu programu, hodnota argc by bola 2 (jedna pre argument a jedna pre názov programu)
- Hodnota argc by nemala byť záporná. argv (ARGument Vector) je pole ukazovateľov znakov so zoznamom všetkých argumentov.
- Ak je argc väčšie ako nula, prvky poľa od argv[0] do argv[argc-1] budú obsahovať ukazovatele na reťazce.
- argv[0] je názov programu , Potom až do argv[argc-1] sú každý prvok argumentmi príkazového riadku.
Pre lepšie pochopenie spustite tento kód na vašom počítači so systémom Linux.
Príklad
Nasledujúci príklad ilustruje tlač argumentov príkazového riadka.
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; }> |
>
>
Výkon
You have entered 4 arguments: ./main geeks for geeks>
pre terminálový vstup
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Poznámka: Štandardy C povoľujú aj iné formáty závislé od platformy; napríklad Unix (hoci nie POSIX.1) a Microsoft Visual C++ majú tretí argument poskytujúci prostredie programu, inak prístupné cez getenv v stdlib.h. Podrobnosti nájdete v programe C na tlač premenných prostredia.
Vlastnosti argumentov príkazového riadku v C
- Prenášajú sa do funkcie main().
- Sú to parametre/argumenty dodávané programu pri jeho vyvolaní.
- Používajú sa na ovládanie programov zvonku namiesto pevného kódovania týchto hodnôt vo vnútri kódu.
- argv[argc] je ukazovateľ NULL.
- argv[0] obsahuje názov programu.
- argv[1] ukazuje na prvý argument príkazového riadka a argv[argc-1] ukazuje na posledný argument.
Poznámka: Všetky argumenty príkazového riadku odovzdávate oddelené medzerou, ale ak samotný argument má medzeru, môžete takéto argumenty odovzdať tak, že ich vložíte do dvojitých alebo jednoduchých úvodzoviek .
Príklad
Nižšie uvedený program demonštruje fungovanie argumentov príkazového riadku.
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; }> |
>
>
Výstup v rôznych scenároch:
1. Bez argumentov: Keď je vyššie uvedený kód skompilovaný a vykonaný bez odovzdania akéhokoľvek argumentu, vytvorí sa nasledujúci výstup.
Terminálový vstup
$ ./a.out>
Výkon
java číslo na reťazec
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tri argumenty: Keď je vyššie uvedený kód skompilovaný a vykonaný s tromi argumentmi, vytvorí sa nasledujúci výstup.
Terminálový vstup
$ ./a.out First Second Third>
Výkon
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. Jediný argument: Keď je vyššie uvedený kód skompilovaný a vykonaný s jedným argumentom oddeleným medzerou, ale v dvojitých úvodzovkách, vytvorí sa nasledujúci výstup.
Terminálový vstup
$ ./a.out 'First Second Third'>
Výkon
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. Jeden argument v úvodzovkách oddelený medzerou: Keď je vyššie uvedený kód skompilovaný a vykonaný s jedným argumentom oddeleným medzerou, ale v jednoduchých úvodzovkách, vytvorí sa nasledujúci výstup.
Terminálový vstup
$ ./a.out 'First Second Third'>
Výkon
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>