Kommandozeilenargumente in C meistern: Ein praktischer Leitfaden
Es ist möglich, beim Ausführen Ihrer C-Programme Werte von der Kommandozeile zu übergeben. Diese Werte werden Kommandozeilenargumente genannt und sind oft wichtig für Ihr Programm, besonders wenn Sie Ihr Programm von außen steuern möchten, anstatt diese Werte im Code fest zu kodieren.
Kommandozeilenargumente werden über die main()-Funktionsargumente verarbeitet, wobei argc die Anzahl der übergebenen Argumente bezeichnet und argv[] ein Zeiger-Array ist, das auf jedes an das Programm übergebene Argument zeigt. Folgendes ist ein einfaches Beispiel, das überprüft, ob ein Argument von der Kommandozeile übergeben wurde, und entsprechend handelt:
#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 einzelnen 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 ohne Argumente ausgeführt wird, erzeugt er das folgende Ergebnis:
$./a.out One argument expected
Es ist zu beachten, dass argv[0] den Namen des Programms selbst enthält und argv[1] ein Zeiger auf das erste übergebene Kommandozeilenargument ist, und *argv[n] das letzte Argument. Wenn keine Argumente übergeben werden, ist argc eins, und wenn Sie ein Argument übergeben, ist argc auf 2 gesetzt.
Sie übergeben alle Kommandozeilenargumente durch Leerzeichen getrennt, aber wenn ein Argument selbst ein Leerzeichen hat, können Sie solche Argumente übergeben, indem Sie sie in doppelte Anführungszeichen "" oder einfache Anführungszeichen '' setzen. Schreiben wir das obige Beispiel erneut, wobei wir den Programmnamen ausgeben und ein Kommandozeilenargument in doppelten Anführungszeichen übergeben:
#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 Argument ausgeführt wird, das durch Leerzeichen getrennt aber in doppelten Anführungszeichen gesetzt ist, erzeugt er das folgende Ergebnis:
$./a.out "testing1 testing2" Program name ./a.out The argument supplied is testing1 testing2
C Sprache
- Decoder verstehen: Typen, Wahrheitstabellen und praktische Anwendungen
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Java Kommandozeilen-Argumente meistern: Übergeben und Parsen von Parametern
- Linieneffizienz in der PCB-Fertigung verstehen: Kennzahlen und Optimierung
- Fertigungsstraßen (Production Lines): Wie Montagelinien die Produktionseffizienz steigern
- Baulinien (Building Lines) verstehen: Ein klarer Leitfaden für Grundstückseigentümer
- Brückenschaltungen (Bridge Taps) verstehen: Wie sie Ihren Telefonservice beeinflussen
- Fließbandmontage (Assembly Line) verstehen: Wie Austauschbarkeit effiziente Produktion antreibt
- Präzisions-Spaltlinien: Fortgeschrittene automatisierte Coil-Schneiden für exakte Breiten
- Chemische Verpackungslinien optimieren: Upgrades für Betriebszeit & OEE-Tracking