Looking for c Answers? Try Ask4KnowledgeBase
Looking for c Keywords? Try Ask4Keywords

C LanguageKommandozeilenargumente


Syntax

  • int main (int argc, char * argv [])

Parameter

Parameter Einzelheiten
argc argument count - wird mit der Anzahl der durch Leerzeichen getrennten Argumente initialisiert, die das Programm über die Befehlszeile erhält, sowie den Programmnamen.
argv Argument vector - initialisiert auf ein Array von char -pointers (strings) enthält , die Argumente (und den Programmnamen) , die auf der Befehlszeile angegeben wurden.

Bemerkungen

AC - Programm in einer ‚gehosteten Umgebung‘ (die normale Art - im Gegensatz zu einer ‚freistehenden Umwelt‘) ausgeführt wird, muss eine hat main Es wird traditionell definiert als:

int main(int argc, char *argv[])

Beachten Sie, dass argv auch als char **argv definiert werden kann und sehr oft ist. Das Verhalten ist das gleiche. Die Parameternamen können auch geändert werden, da sie nur lokale Variablen in der Funktion sind. argc und argv sind jedoch üblich und Sie sollten diese Namen verwenden.

Verwenden Sie für main , bei denen der Code keine Argumente verwendet, int main(void) .

Beide Parameter werden beim Programmstart initialisiert:

  • argc wird auf die Anzahl der durch Leerzeichen getrennten Argumente, die dem Programm von der Befehlszeile aus gegeben werden, sowie den Programmnamen selbst initialisiert.
  • argv ist ein Array von char -pointers (strings), die die Argumente (und den Programmnamen) enthalten, die in der Befehlszeile angegeben wurden.
  • Einige Systeme erweitern Befehlszeilenargumente "in der Shell", andere nicht. Wenn der Benutzer unter Unix myprogram *.txt Programm myprogram *.txt , erhält das Programm eine Liste von Textdateien. Unter Windows erhält es die Zeichenfolge " *.txt ".

Hinweis: Vor der Verwendung von argv müssen Sie möglicherweise den Wert von argc überprüfen. In der Theorie könnte argc 0 , und wenn argc Null ist, gibt es keine Argumente, und argv[0] (entspricht argv[argc] ) ist ein Nullzeiger. Es wäre ein ungewöhnliches System mit einer gehosteten Umgebung, wenn dieses Problem auftritt. Ebenso ist es möglich, wenn auch sehr ungewöhnlich, keine Informationen über den Programmnamen zu erhalten. In diesem Fall ist argv[0][0] == '\0' - der Programmname ist möglicherweise leer.

Angenommen, wir starten das Programm folgendermaßen:

./some_program abba banana mamajam

Dann ist argc gleich 4 und die Befehlszeilenargumente:

  • argv[0] zeigt auf "./some_program" (den Programmnamen), wenn der Programmname in der "./some_program" verfügbar ist. Ansonsten eine leere Zeichenfolge "" .
  • argv[1] verweist auf "abba" ,
  • argv[2] verweist auf "banana" ,
  • argv[3] verweist auf "mamajam" ,
  • argv[4] enthält den Wert NULL .

Siehe auch Was sollte main() in C und C ++ für vollständige Zitate aus dem Standard zurückgeben.

Kommandozeilenargumente Verwandte Beispiele