Sdílet prostřednictvím


Definice argument

Argumenty v prototypu

int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
int wmain( int argc[ , wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] );

umožňují pohodlné příkazového řádku analýzy argumenty a případně přístup k proměnné prostředí.Definice argumentu jsou:

  • argc
    Celé číslo, které obsahuje počet argumentů, které následují v argv.argc Parametr je vždy větší nebo rovna 1.

  • argv
    Pole řetězců zakončený představující argumenty příkazového řádku zadané uživatelem programu.Úmluvou argv**[0]** příkaz, ke kterému je vyvolán program, argv**[1]** je první argument příkazového řádku a tak dále až do argvargc**[]**, který je vždy NULL.Viz Přizpůsobení zpracování příkazového řádku informace o potlačení zpracování příkazového řádku.

    První argument příkazového řádku je vždy argv**[1]** a poslední je argvargc – 1**[]**.

    [!POZNÁMKA]

    Podle úmluvy se argv[0] příkaz, ke kterému je vyvolán program.Je však možné spustit proces pomocí CreateProcess a pokud použijete první a druhé argumenty (lpApplicationName a lpCommandLine), argv[0] nemusí být název spustitelného souboru; použít GetModuleFileName načíst název spustitelného souboru a jeho úplnou cestu.

Microsoft specifické

  • envp
    envp Pole, které je společné rozšíření v systémech UNIX, je používán Microsoft C++.Je pole řetězců představující proměnných v prostředí uživatele.Toto pole je ukončena NULL položka.Mohou být deklarovány jako ukazatele na pole znak (char * [envp]) nebo jako ukazatel na ukazatele na znak (char ** envp**).Pokud váš program používá wmain namísto hlavní, použít wchar_t typ dat, nikoli char.Blok prostředí předán hlavní a wmain "zmrazené" kopii aktuálního prostředí.Pokud později změníte prostředí prostřednictvím volání putenv nebo _wputenv, aktuální prostředí (jako vrácené getenv/_wgetenv** a _environ/ _wenviron proměnné) změnit, ale odkazuje envp bloku se nezmění.Viz Přizpůsobení zpracování příkazového řádku informace o potlačení zpracování prostředí.Tento argument je ANSI C, ale ne v C++ kompatibilní.

Příklad

Následující příklad zobrazuje způsob použití argc, argv, a envp argumenty hlavní:

// argument_definitions.cpp
// compile with: /EHsc
#include <iostream>
#include <string.h>

using namespace std;
int main( int argc, char *argv[], char *envp[] ) {
    int iNumberLines = 0;    // Default is no line numbers.

    // If /n is passed to the .exe, display numbered listing
    // of environment variables.

    if ( (argc == 2) && _stricmp( argv[1], "/n" ) == 0 )
         iNumberLines = 1;

    // Walk through list of strings until a NULL is encountered.
    for( int i = 0; envp[i] != NULL; ++i ) {
        if( iNumberLines )
            cout << i << ": " << envp[i] << "\n";
    }
}

Viz také

Referenční dokumentace

hlavní: spuštění programu