Nejdůležitější funkcí C je funkce main(). Většinou je definován s návratovým typem int a bez parametrů.
int main() { ... }>
Můžeme také zadat argumenty příkazového řádku v C. Argumenty příkazového řádku jsou hodnoty uvedené za názvem programu v příkazovém řádku operačních systémů. Argumenty příkazového řádku jsou zpracovávány funkcí main() programu v jazyce C.
Abychom předali argumenty příkazového řádku, obvykle definujeme main() dvěma argumenty: prvním argumentem je argument počet argumentů příkazového řádku a druhý je a seznam argumentů příkazového řádku.
np.histogram
Syntax
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>
Tady,
- argc (ARGument Count) je celočíselná proměnná, která ukládá počet argumentů příkazového řádku předaných uživatelem, včetně názvu programu. Pokud tedy předáme hodnotu programu, hodnota argc by byla 2 (jedna pro argument a jedna pro název programu)
- Hodnota argc by měla být nezáporná. argv (ARGument Vector) je pole znakových ukazatelů se seznamem všech argumentů.
- Pokud je argc větší než nula, prvky pole od argv[0] do argv[argc-1] budou obsahovat ukazatele na řetězce.
- argv[0] je název programu, poté až do argv[argc-1] jsou všechny prvky argumenty příkazového řádku.
Pro lepší pochopení spusťte tento kód na svém počítači se systémem Linux.
Příklad
Níže uvedený příklad ilustruje tisk argumentů příkazového řádku.
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ýstup
You have entered 4 arguments: ./main geeks for geeks>
pro terminálový vstup
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Poznámka: Jiné formáty závislé na platformě jsou také povoleny standardy C; například Unix (i když ne POSIX.1) a Microsoft Visual C++ mají třetí argument udávající prostředí programu, jinak přístupné přes getenv v stdlib.h. Podrobnosti naleznete v programu C pro tisk proměnných prostředí.
Vlastnosti argumentů příkazového řádku v C
- Jsou předány funkci main().
- Jsou to parametry/argumenty dodávané programu, když je vyvolán.
- Používají se k ovládání programů zvenčí namísto pevného kódování těchto hodnot uvnitř kódu.
- argv[argc] je ukazatel NULL.
- argv[0] obsahuje název programu.
- argv[1] ukazuje na první argument příkazového řádku a argv[argc-1] ukazuje na poslední argument.
Poznámka: Všechny argumenty příkazového řádku předáváte oddělené mezerou, ale pokud má samotný argument mezeru, můžete takové argumenty předat tak, že je vložíte do dvojitých nebo jednoduchých uvozovek .
Příklad
Níže uvedený program demonstruje fungování argumentů příkazového řádku.
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; }> |
8 na 1 multiplexer
>
>
Výstup v různých scénářích:
1. Bez argumentů: Když je výše uvedený kód zkompilován a spuštěn bez předání jakéhokoli argumentu, vytvoří následující výstup.
Terminálový vstup
$ ./a.out>
Výstup
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tři argumenty: Když je výše uvedený kód zkompilován a spuštěn se třemi argumenty, vytvoří následující výstup.
Terminálový vstup
$ ./a.out First Second Third>
Výstup
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: Když je výše uvedený kód zkompilován a spuštěn s jedním argumentem odděleným mezerou, ale uvnitř dvojitých uvozovek, vytvoří následující výstup.
Terminálový vstup
$ ./a.out 'First Second Third'>
Výstup
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. Jediný argument v uvozovkách oddělený mezerou: Když je výše uvedený kód zkompilován a spuštěn s jedním argumentem odděleným mezerou, ale uvnitř jednoduchých uvozovek, vytvoří následující výstup.
Terminálový vstup
$ ./a.out 'First Second Third'>
Výstup
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>