Befehlszeilenargumente in C erklärt
Veröffentlicht: 2022-04-29Befehlszeilenargumente werden verwendet, wenn ein Programm von außen statt intern gesteuert werden muss. Es ist eine Textschnittstelle für Entwickler, bei der Argumente direkt an die primäre Methode übergeben werden.
Die Werte, die innerhalb einer Funktion beim Aufruf übergeben werden, werden als Argumente bezeichnet. Mit anderen Worten, ein Argument ist ein Parameter, der beim Aufrufen an eine bestimmte Methode übergeben wird.
Syntax :
int main() { /* … */ }
Der obige Code empfängt den Befehl und leitet ihn zur Ausführung an das Betriebssystem des Computers weiter. Diese Befehle werden immer dann aufgerufen, wenn ein Code ausgeführt wird.
CC- und C++-Befehlszeilenargumente sind aufgrund ihrer Einfachheit und leicht zu entschlüsselnden Syntax ziemlich einfach zu implementieren.
Um Befehlszeilenargumente zu übergeben, muss die Hauptfunktion durch zwei Argumente definiert werden:
- Die Gesamtzahl der Befehlszeilenargumente
- Die gesamte Liste der Befehlszeilenargumente
Syntax :
int main(int argc, char *argv[]) { /* … */ }
- argc (ARGument Count) ist als ganzzahliger Datentyp definiert, der die Gesamtzahl der Befehlszeilenargumente speichert. Verständlicherweise sollte dies immer ein nicht negativer Wert sein.
- argv (ARGument Vector) bezeichnet ein Array von Zeigern des Zeichendatentyps, das zum Speichern der gesamten Liste von Befehlszeilenargumenten verwendet wird.
Mithilfe der Befehlszeile können Entwickler auf eine Reihe von Dateien und Ordnern auf ihren Computern zugreifen. Ein bestimmtes Programm, das mehrere Befehlszeilenargumente enthält, kann die Quellen oder Ziele der angegebenen Daten schnell identifizieren. Es hat auch das Potenzial, die Funktionsweise des Programms zu verändern. Es macht den Erstellungsprozess einfacher, die Quellcodeverwaltung einzubinden.
Im Bereich der Entwicklung benötigen viele Aufgabenstellungen keine eigentliche Visualisierung. In solchen Fällen können alle Funktionen mit Hilfe von Kommandozeilenargumenten ausgeführt werden. Es gibt eine sehr seltene Anforderung für eine wörtliche grafische Schnittstelle. Dies hilft, eine Menge Finanzen, Aufwand und Ressourcen zu sparen.
Lernen Sie Online-Softwareentwicklungskurse von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Eigenschaften | Befehlszeilenargumente in C
Befehlszeilenargumente haben einige interessante und nützliche Eigenschaften. Sie sind wie folgt:
- Um den Namen des Programms auszugeben, muss der Befehl argv[0] lauten.
- argv[argc] ist im Wesentlichen ein Nullzeiger
- Um das erste vom Benutzer bereitgestellte Argument auszugeben, muss der Befehl argv[1] lauten.
- Der Benutzer übergibt Befehlszeilenargumente vom Terminal
- Die Verwendung dieser Befehle besteht darin, die Programme von außen zu steuern, anstatt die Werte innerhalb des Programms fest codieren zu müssen
- Befehlszeilenargumente werden immer an die Funktion main() übergeben
- Das erste Befehlsland-Argument ist argv[1], während der letzte Befehl argv[n] ist.
Beispiel für ein Befehlszeilenargument
Es folgt ein Demoprogramm für Kommandozeilenargumente in C:
// C-Programm zur Veranschaulichung
// Kommandozeilenargumente
#include<stdio.h>
int main(int argc,char* argv[])
{
int-Zähler;
printf("Programmname ist: %s",argv[0]);
if(argc==1)
printf(“\nEs wurde kein zusätzliches Befehlszeilenargument außer dem Programmnamen übergeben”);
if(argc>=2)
{
printf(“\nAnzahl übergebener Argumente: %d”,argc);
printf(“\n—-Folgend sind die übergebenen Befehlszeilenargumente—-“);
for(counter=0;counter<argc;counter++)
printf(“\nargv[%d]: %s”,Zähler,argv[Zähler]);
}
0 zurückgeben;
}
Die Ausgabe unterscheidet sich je nach Szenario. Sie wurden einzeln weiter erläutert.
- Ohne Argument:
Um die folgende Ausgabe zu erzeugen, muss der Code ohne Übergabe eines Arguments ausgeführt werden:
Ausgang 1 –
$ ./a.out
Programmname ist: ./a.out
Außer dem Programmnamen wurde kein zusätzliches Befehlszeilenargument übergeben
- Mit drei Argumenten:
Um die folgende Ausgabe zu erzeugen, muss der Code mit drei Argumenten ausgeführt werden.
Ausgang 2 –
$ ./a.out Erster Zweiter Dritter
Programmname ist: ./a.out
Anzahl der übergebenen Argumente: 4
—-Folgend sind die übergebenen Befehlszeilenargumente—-
argv[0]: ./a.out
argv[1]: Zuerst
argv[2]: Zweitens
argv[3]: Drittens
- Mit einem einzigen Argument:
Der Code muss mit einem einzigen Argument kompiliert und ausgeführt werden, das durch Leerzeichen getrennt werden muss, während es in Anführungszeichen steht, um die folgende Ausgabe zu erzeugen.
Ausgang 3 –
$ ./a.out „Erstes Zweites Drittel.“
Programmname ist: ./a.out
Anzahl der übergebenen Argumente: 2
—-Folgend sind die übergebenen Befehlszeilenargumente—-
argv[0]: ./a.out
argv[1]: Erstes Zweites Drittel
- Mit einem einzigen Argument in Anführungszeichen und durch Leerzeichen getrennt:
Der Code muss mit einem einzelnen Argument kompiliert und ausgeführt werden, das durch Leerzeichen getrennt ist, aber in einfachen Anführungszeichen steht, um die folgende Ausgabe zu erzeugen.
Ausgang 4 –
$ ./a.out 'Erstes Zweites Drittel'
Programmname ist: ./a.out
Anzahl der übergebenen Argumente: 2
—-Folgend sind die übergebenen Befehlszeilenargumente—-
argv[0]: ./a.out
argv[1]: Erstes Zweites Drittel
Vorteile von Befehlszeilenargumenten in C
Die Verwendung von Befehlszeilenargumenten in C bietet mehrere Vorteile. Sie sind wie folgt:
- Befehlszeilenargumente in C können verwendet werden, wenn ein Programmierer oder Benutzer die Werte von innen an das Programm übergeben möchte, anstatt dies intern zu tun.
- Die Befehlszeilenanwendungen können sehr einfach für die Verwendung in Batchdateien oder Skripten erstellt werden. Dies ist eine große Hilfe, wenn es um automatisierte Tests oder Builds geht.
- Die Kommandozeile ist einfacher zu entwickeln, wenn Programmierer die Tools schreiben, anstatt sie zu verwenden. Das Eingeben von Argumenten wird als eine viel komplexere und zeitaufwändigere Aufgabe angesehen als das Ausgeben eines Textstroms.
- Die Eingabe-, Ausgabe- und Fehlerströme können sehr einfach umgeleitet werden, wenn Informationen von verschiedenen Dateien und Anwendungen gesendet oder empfangen werden können.
- Der Fehlerrückgabemechanismus in Befehlszeilenargumenten ist ziemlich standardisiert und einfach.
- Wenn ein Programmierer oder Benutzer versucht, von zu Hause oder unterwegs Zugriff zu erhalten, im Grunde während er mobil ist, erleichtert die Verwendung über Remote-Shells oder andere ähnliche Verbindungen die Ausführung von Aufgaben im geringsten.
- Für die Funktion der Angabe mehrerer Dateien sind definierte Wildcard-Syntaxstandards vorhanden, die auf das vorhandene Wissen des Entwicklers oder Programmierers zurückgreifen und darauf aufbauen.
- Befehlszeilen sind überzeugend und extrem schnell.
Apropos Vorteile in verschiedenen Befehlszeilenargumenten, das Folgende ist ein weiteres detailliertes Beispiel oder eine Demonstration, wie Sie sie implementieren sollten.
#include <stdio.h>
#include <conio.h>
//Hauptmethode wird aufgerufen, an die die Kommandozeilenargumente an das Programm übergeben werden
int main(int argc, char *argv[])
{
//Eine Integer-Variable wird definiert
int ein;
//Wenn die Bedingung angewendet wird, um zu prüfen, ob die Anzahl der an das Programm übergebenen Argumente größer oder gleich zwei ist, und wenn die Bedingung wahr ist, werden die an das Programm übergebenen Befehlszeilenargumente ausgegeben. Andernfalls wird kein Argument an das Programm übergeben und ausgegeben
if(argc >= 2)
{
printf("Die an das Programm übergebenen Argumente sind:\n");
for(a = 1; a <argc; a++)
{
printf(“Das an das Programm übergebene Argument ist: %s\t”, argv[a]);
}
}
anders
{
printf("Kein Argument wird an das Programm übergeben\n");
}
0 zurückgeben;
}
Ausgabe:
Dem Programm wird kein Argument übergeben.
Die Kommandozeilenargumente werden dem Programm im oben erwähnten Code durch den Aufruf der main-Methode übergeben. Der nächste Schritt ist die Definition einer Integer-Variablen. Als nächstes wird die Bedingung übergeben, um zu prüfen, ob die Anzahl der an das Programm übergebenen Argumente größer oder gleich 2 ist. Die an das Programm übergebenen Befehlszeilenargumente werden ausgegeben, wenn die Bedingung wahr ist. Wenn nicht, wird kein Argument an das Programm übergeben und ausgegeben.
Schlussfolgerungen
Erfahren Sie mehr über die Bedeutung von Befehlszeilenargumenten in C und C++, indem Sie sich für das Executive PG Program in Software Development – Specialization in Full Stack Development von upGrad anmelden . Der 13-monatige Kurs soll angehenden IT-Experten helfen, Java, Spring, Hibernate, HTML, React, Git und eine Reihe anderer Programmiersprachen und Tools zu beherrschen, um komplexe Anwendungen wie Quora und Swiggy zu erstellen.
Das Programm bietet auch eine kostenlose 4-monatige Executive-Zertifizierung in Data Science & Machine Learning.
Was sind die grundlegenden Nachteile, die Programmierer bei der Implementierung von Befehlszeilenargumenten in C in Kauf nehmen müssen?
Obwohl Befehlszeilenargumente in C für Entwickler und Programmierer praktisch sind, haben sie einige Nachteile. Personen, die nicht über die Grundkenntnisse verfügen und nicht daran gewöhnt sind, mit diesen Befehlen zu arbeiten, können sich als ziemlich herausfordernd erweisen, insbesondere in kurzer Zeit zu lernen und sich an sie anzupassen. Dies ist jedoch kein Problem für erfahrene Programmierer und Entwickler. Aber für Nachwuchskräfte, die vielleicht aus anderen oder benachbarten Bereichen kommen, erweist es sich manchmal als hinderlich. Darüber hinaus benötigen Befehlszeilenargumente eine Tastatur, um implementiert und ausgeführt zu werden. Dies wird oft zu einem Hindernis, wenn jemand über sein Telefon oder iPad usw. darauf zugreifen muss.
Welche Trennzeichen werden zum Trennen von Befehlszeilenargumenten verwendet?
Um Befehlszeilenargumente zu trennen, werden im Allgemeinen Leerzeichen verwendet. Sie trennen den Befehlsnamen von seinen Parametern und trennen verschiedene Parameter untereinander. Sie sind auch praktisch, wenn Sie eine Liste mit verschiedenen Werten trennen. Mehrfach-Rohlinge werden normalerweise als ein einziger Rohling behandelt. Die einzige Ausnahme hiervon tritt in einer Zeichenfolge in Anführungszeichen oder einem Kommentar auf, der in einfache Anführungszeichen eingeschlossen ist.
Ist es möglich, Befehlszeilenargumente zu konvertieren?
Alle Kommandozeilenargumente werden als String übergeben. Die Zahlenwerte müssen von Programmierern oder Anwendern immer mit manuellem Aufwand in ihre internen Formen umgewandelt werden. Die Hauptfunktion erhält immer ihre Parameter, die normalerweise ein Array von Strings sind. Dies ist das einzige Funktionsargument, das die Hauptfunktion akzeptiert. String-Datentypen werden beim Speichern von Befehlszeilenargumenten verwendet.