Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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";
}
}