Argumente der Funktion main()

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Funktion main() - Index


Der Funktion main werden von der Startroutine von C++Builder drei Parameter (Argumente) übergeben: argc, argv und env.

  • argc, ein Integerwert, enthält die Anzahl der Befehlszeilenargumente, die an main übergeben werden (einschließlich des Namens der ausführbaren Datei).
  • argv ist ein Array von Zeigern auf Strings (char *[]).
    • argv[0] enthält den vollständigen Pfadnamen des auszuführenden Programms.
    • argv[1] zeigt auf den ersten String, der auf Betriebssystemebene in der Befehlszeile nach dem Programmnamen eingegeben wird.
    • argv[2] zeigt auf den zweiten, nach dem Programmnamen eingegebenen String.
    • argv[argc-1] zeigt auf das letzte an main übergebene Argument.
    • argv[argc] enthält NULL.
  • Auch env ist ein Array mit Zeigern auf Strings. Jedes Element von env[] enthält einen String der Form ENVVAR=Wert.
    • ENVVAR ist der Name einer Umgebungsvariable, wie z.B. PATH.
    • Wert ist der Wert, auf den ENVVAR gesetzt ist, wie z.B. C:\APPS;C:\TOOLS; (für PATH).

Wenn Sie einen oder mehrere dieser Parameter deklarieren, müssen Sie die angegebene Reihenfolge einhalten: argc, argv, env. Die folgenden Beispiele sind gültige Deklarationen von Argumenten für main:

int main()
int main(int argc)         /* legal but very unlikely */
int main(int argc, char *argv[])
int main(int argc, char *argv[], char *env[])]

Die Deklaration int main(int argc) ist zulässig. Allerdings ist es sehr unwahrscheinlich, dass Sie in einem Programm argc ohne die Elemente von argv verwenden.

Das Argument env ist auch über die globale Variable _environ verfügbar.

Für alle Plattformen gilt, dass die Argumente argc und argv auch über die globalen Variablen _argc und _argv verfügbar sind.

main() in Unicode-Anwendungen

Die Unicode-Version der Funktion main ist wie folgt deklariert:

int wmain (int argc, wchar_t *argv[], wchar_t *env[])

Der Parameter argv (und der optionale Parameter envp) unterstützen Wide-Zeichen.

Die folgende Funktion _tmain ist ein Makro, das abhängig vom Anwendungstyp zur entsprechenden Version der Funktion main erweitert wird:

int _tmain (int argc, _TCHAR *argv[], _TCHAR *env[])

Siehe auch