C - Befehlszeilenargumente
Es ist möglich, einige Werte von der Befehlszeile an Ihre C-Programme zu übergeben, wenn sie ausgeführt werden. Diese Werte werden als Befehlszeilenargumente bezeichnet und oft sind sie wichtig für Ihr Programm, besonders wenn Sie Ihr Programm von außen steuern möchten, anstatt diese Werte fest im Code zu codieren.
Die Befehlszeilenargumente werden mithilfe von main()-Funktionsargumenten behandelt, wobei argc bezieht sich auf die Anzahl der übergebenen Argumente und argv[] ist ein Zeigerarray, das auf jedes an das Programm übergebene Argument zeigt. Das Folgende ist ein einfaches Beispiel, das prüft, ob ein Argument von der Befehlszeile geliefert wird, und entsprechende Maßnahmen ergreift −
#include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
Wenn der obige Code kompiliert und mit einem einzigen Argument ausgeführt wird, erzeugt er das folgende Ergebnis.
$./a.out testing The argument supplied is testing
Wenn der obige Code kompiliert und mit zwei Argumenten ausgeführt wird, erzeugt er das folgende Ergebnis.
$./a.out testing1 testing2 Too many arguments supplied.
Wenn der obige Code kompiliert und ausgeführt wird, ohne irgendein Argument zu übergeben, erzeugt er das folgende Ergebnis.
$./a.out One argument expected
Es sollte beachtet werden, dass argv[0] enthält den Namen des Programms selbst und argv[1] ist ein Zeiger auf das erste angegebene Befehlszeilenargument und *argv[n] ist das letzte Argument. Wenn keine Argumente angegeben werden, ist argc eins, und wenn Sie ein Argument übergeben, dann argc auf 2 gesetzt.
Sie übergeben alle Befehlszeilenargumente durch ein Leerzeichen getrennt, aber wenn das Argument selbst ein Leerzeichen enthält, können Sie solche Argumente übergeben, indem Sie sie in doppelte Anführungszeichen "" oder einfache Anführungszeichen '' setzen. Lassen Sie uns das obige Beispiel noch einmal umschreiben, wo wir den Programmnamen ausgeben und wir übergeben auch ein Befehlszeilenargument, indem wir doppelte Anführungszeichen einfügen −
#include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
Wenn der obige Code kompiliert und mit einem einzelnen, durch Leerzeichen getrennten Argument, aber in doppelten Anführungszeichen ausgeführt wird, erzeugt er das folgende Ergebnis.
$./a.out "testing1 testing2" Program name ./a.out The argument supplied is testing1 testing2
C Sprache