Definizioni di argomenti

Gli argomenti nel prototipo

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

abilitare l'analisi della riga di comando disponibili negli argomenti e, facoltativamente, accedere alle variabili di ambiente.Le definizioni di argomento sono le seguenti:

  • argc
    Un Integer contenente il numero di argomenti che seguono in argv.Il parametro argc è sempre 1 o successive.

  • argv
    Una matrice di stringhe con terminazione null che rappresentano gli argomenti della riga di comando immessi dall'utente del programma.Per convenzione, argv**[0]** è il comando con cui il programma viene richiamato, argv**[1]** è il primo argomento della riga di comando, e così via fino a argv**[argc]**, che è sempre null.Vedere Personalizzazione dell'elaborazione della riga di comando per informazioni sull'eliminazione l'elaborazione della riga di comando.

    Il primo argomento della riga di comando è sempre argv**[1]** e l'ultimo è argv**[argc – 1]**.

    [!NOTA]

    Per convenzione, argv[0] è il comando con cui il programma viene richiamato.Tuttavia, è possibile generare un processo utilizzando CreateProcess e se si utilizzano primi di secondi argomenti (lpApplicationName e lpCommandLine), argv[0] non può essere il nome file eseguibile; utilizzo GetModuleFileName recuperare il nome file e il relativo percorso completo.

Specifici di Microsoft

  • envp
    La matrice envp, che è un'estensione comune in molti sistemi UNIX, viene utilizzata in Microsoft C++.È una matrice di stringhe che rappresentano le variabili impostate in caso di utilizzo.Questa matrice viene interrotta da una voce null.Può essere dichiarato come matrice di puntatori a char (char *envp[ ]) o puntatore ai puntatori a char (char **envp**).Se il programma utilizza wmain anziché principale, utilizzare il tipo di dati wchar_t anziché char.Il blocco di ambiente viene passato a principale e wmain è una copia “a„ dell'ambiente corrente.Se successivamente si modifica l'ambiente tramite una chiamata a putenv o a _wputenv, l'ambiente corrente (restituiti da getenv/_wgetenv** e la variabile _wenviron / _environ) cambia, ma il blocco puntato da envp non cambia.Vedere Personalizzazione dell'elaborazione della riga di comando per informazioni sull'eliminazione l'elaborazione dell'ambiente.Questo argomento è compatibile in ANSI C, ma non in C++.

Esempio

Di seguito viene illustrato come utilizzare argc, argve gli argomenti envp a principale:

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

Vedere anche

Riferimenti

principale: Avvio del programma