Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Argumente im Prototyp
int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
int wmain( int argc[ , wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] );
Sie können einfache Befehlszeilenanalyse von Argumenten und greifen Sie optional auf Umgebungsvariablen zu.Die Argumentdefinitionen sind, wie folgt:
argc
Eine ganze Zahl, die die Anzahl der Argumente enthält, die in argv folgen.Der argc-Parameter ist immer größer oder gleich 1.argv
Ein Array auf NULL endende Zeichenfolge, die die Befehlszeilenargumente vom Benutzer eingegeben wurde des Programms darstellen.Gemäß der Konvention ist argv**[0]** der Befehl, mit dem das Programm aufgerufen wird, argv**[1]** ist das erste Befehlszeilenargument usw. bis argv**[argc]**, das immer NULL ist.Siehe Anpassen des Befehlszeilen-Verarbeitens zu Informationen über das Unterdrücken des Befehlszeilenverarbeitens.Das erste Befehlszeilenargument ist immer argv**[1]** und das letzte von ist argv**[argc - 1]**.
HinweisGemäß der Konvention ist argv[0] der Befehl, mit dem das Programm aufgerufen wird.Allerdings kann es ist möglich, einen Prozess mit CreateProcess und wenn Sie die erste und zweite Argumente (lpApplicationName und lpCommandLine) verwenden, argv[0] zu erzeugen nicht der Name der ausführbaren; Verwendung GetModuleFileName, ausführbaren Namen abzurufen und ihr vollqualifizierter Pfad.
Microsoft-spezifisch
- envp
Das envp Array, das eine allgemeine Erweiterung in vielen UNIX-Systemen ist, ist in Microsoft C++ verwendet.Es ist ein Zeichenfolgenarray, das die Variablen darstellt, die in der Anwenderkonfiguration festgelegt werden.Dieses Array wird durch einen NULL Eintrag beendet.Er kann als Array von Zeigern auf char (char *envp[ ]) oder als Zeiger auf den Zeiger zu char (char deklariert werden envp **).Wenn das Programm wmain anstelle main verwendet, verwenden Sie den wchar_t Datentyp anstelle char.Der Umgebungsblock weitergegebenen zu main und wmain ist eine "eingefrorene" Kopie der aktuellen Umgebung.Wenn Sie anschließend die Umgebung über einen Aufruf putenv oder zu _wputenv ändern, ändert sich die aktuelle Umgebung (wie durch getenv/_wgetenv und die _environ/ _wenviron-Variable zurückgegeben), der Block, der an den envp gezeigt wird, ändert sich nicht.Siehe Anpassen des Befehlszeilen-Verarbeitens zu Informationen über das Unterdrücken des Umgebungsverarbeitens.Dieses Argument ist, das in ANSI C, jedoch nicht in C++ kompatibel ist.
Beispiel
Im folgenden Beispiel wird gezeigt, wie argc, argv und envp-Argumente zu main verwendet:
// 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";
}
}