Syntax:
Beide 'argc ' Und 'argv ' sind die Parameter für die Zählerklärung, wie sie von der Main () -Funktion akzeptiert werden. ''Optstring'ist das Argument einer Zeichenfolge, die Optionen Zeichen erkennen muss. Jeder Charakter, der durch einen Dickdarm verfolgt wird: 'Gilt als Argument. 'optind' ist die initialisierte Variable, die als Index für das nächste Element angesehen wird, in dem sie als nächstes für die Verarbeitung in der Linie steht.
Zweck der Verwendung des GETOPT in C:
Die Funktion getopt () ist in C integriert, mit der Befehlszeilenargumente analysiert werden.
Rückgabewert in GetOpt () -Funktion
Wenn getopt () auf einen Optionscharakter stößt, der nicht in 'Optstring' ist, gibt es die ('' zurück. '?') Zeichen als Ausgabe. Wenn ein Argument als Option fehlt, sollte es einen Dickdarm (':') als Ausgabe zurückgeben. Getopt () setzt die Variable 'Optopt' auf das ausgewählte Zeichen, das den Fehler in beiden Fällen ausgelöst hat. Getopt () druckt entsprechend eine indikative Meldung an stderr in der für das Dienstprogramm 'getopts' definierten Syntax, wenn die Variable 'OPTERR' nicht auf 0 eingestellt ist und das anfängliche Zeichen von 'optstring' kein Dickdarm ist.
Die Funktion getopt () muss nicht wieder eingetreten sein. Die Sicherheit der Gewinde ist für eine Funktion, die nicht wieder eingetreten ist, nicht obligatorisch.
Beispiel für GetOpt () in C:
Nehmen wir ein einfaches Programm, das Benutzer als -U und -G für die Gruppe akzeptiert. Zunächst müssen Sie die Header -Datei für GetOpt () -Funktionalität einbeziehen.
#enthalten
Lassen Sie uns die Hauptfunktion einrichten, bei der wir "Argc" als ganzzahliger und Zeichenarray als "** argv" haben. Jetzt setzen wir hier ein paar Variablen ein und setzen einen Ganzzahlnamen option_index = 0; Weil jedes der Argumente, die wir vorlegen werden. Wir setzen oder initialisieren es auf 0, um die Warnung zu stoppen, da wir möglicherweise eine nicht initialisierte Variable verwenden.
Da wir keinen String-Datentyp in C haben, richten wir ein Zeichen-Array für '-U' ein, um den Benutzernamen als Eingabe zu nehmen und ihn mit einem Nullwert zu initiieren.
Jetzt werden wir eine Weile Schleife eingeben und es uns ermöglichen, alle Argumente zu lesen, wenn Optionen festgelegt wurden. Wie bei den Bedingungen brauchen wir unsere Klammern, um sie mit einem echten Wert einzuschließen, der in unserem Fall "Option_index = getopt (argc, argv," Gu: ") lautet") ". Wir werden Getopt () verwenden, um unsere Argumentation als "Argc" zu betrachten und aus unserem Array 'Argv' zu lesen, um die Optionen festzulegen. Ebenso ist hier eine Option "Gu:" und wir haben einen Dickdarm nach der Flagge "u" gestellt. Das ':' nach dem Flag -Wert gibt an, dass er ein Argument erwirbt. Es spielt keine Rolle, welche Reihenfolge Sie die Optionen eingeben, aber es ist wichtig, dass Sie nach den Optionen einen Dickdarm setzen.
Jetzt haben wir eine Switch -Anweisung in unserer While -Schleife und untersuchen den im Index der Variablen "option_index" gespeicherten Wert ". Wir untersuchen jeden Punkt für jeden Fall.
Wir setzen zuerst den Fall fest, in dem wir "user_name = optarg" festgelegt haben,. Die Optionen können verwendet werden, um den Benutzer zu lesen, den wir bei der Eingabe von "u" als Eingabe hinzugefügt haben, hinzugefügt werden. Wir müssen auch angeben, dass wir mit diesem Fall fertig sind, und das tun wir in der C -Sprache, indem wir am Ende jeweils nach jedem Fall "Break" verwenden.
Ebenso verwenden wir den zweiten Fall, in dem der Benutzer, wenn der Benutzer 'G' eingibt.
Jetzt im letzten Fall verwenden wir es für alle anderen Optionen, was in unserem Fall ein Fehler sein kann. Wir können dies mit 'Standard:' und angeben, ob die ungültige Option identifiziert oder eingegeben wird. Wir werden Druckanweisungen mit "Falschoption" anzeigen.
Wir werden auch eine kleine Vielfalt machen. Wir hoffen, Sie haben noch nicht gesehen, dass dies der Rückgabewert ist. Wenn wir den Rückgabewert auf 1 einsetzen, werden wir die Hauptfunktion verlassen. Unser Programm meldet einen Fehler, was bedeutet.
Jetzt haben wir bereits alle Blöcke geschlossen und dafür gesorgt, dass wir normalerweise zu Hauptklammern zurückgekommen sind. Das Programm gibt normalerweise einen Wert 0 an die Hauptfunktion zurück. Wir haben jetzt erfolgreich den Versagen von unserem Programm kontrolliert.
Mal sehen, ob unser Programm funktioniert. Nachdem wir den folgenden Code eingeben, möchten wir, dass Sie diesen Befehl in die Befehlszeile einfügen. Wir haben GCC verwendet und sind direkt in den Quellcode 'Option_program gegangen.c 'und dann "-o" für Optionen verwendet. Danach wird es ein Argument sein, und hier ist "einfach" eine Ausgabe.
Nachdem wir unsere ausgeführt haben 'GCC Simple_Option.c -o einfach -wall ' Befehl erfolgreich, jetzt gehen wir mit einer falschen Option durch, die '-h' lautet. Wenn Sie „-h“ als Option verwenden, erhalten Sie einen Fehler, da wir eine falsche Option gesendet haben. Wir können auch beide Argumente zusammen verwenden und das Ergebnis entsprechend erhalten.
Hier können wir sehen, ob wir wissen wollen, wie unser letztes Programm ausgeführt wurde. Wenn Sie „Echo $ eingeben?”, Und wenn es 0 zurückgibt, bedeutet dies, dass das letzte Programm erfolgreich ausgeführt wurde und wenn es 1 zurückgibt, wie Sie im obigen Bild sehen können, was bedeutet, dass die letzte Programmausführung fehlgeschlagen ist.
Abschluss:
Dieser Artikel zielte darauf ab, Ihnen ein besseres und klareres Verständnis der Funktion getopt () zu vermitteln, damit Sie Ihre Code -Lesbarkeit verbessern und die Wiederverwendbarkeit des Codes verbessern können. Wir haben ein einfaches Beispiel mit Syntax besprochen. Der Artikel hilft Ihnen dabei, leicht ein sehr solides Wissen und Verständnis dafür zu erhalten, wie Sie GetOpt () als Funktion verwenden können. Verschiedene Argumente als Parameter wurden diskutiert, um die Funktion besser zu nutzen.