Das Hamburger
bekommt, auf der Komando-Zeile wieder ausgibt. Dabei soll jedes Argument aber in
einer eigenen Zeile stehen. Ich kann kurz den Befehl echo demonstrieren, in dem
ich einfach tippe echo Hallo Welt und als Ausgabe des Programms echo sehen wir
das, was wir als Argument übergeben haben. Das Verhalten, das wir jetzt an der
Stelle aber haben wollen, ist, dass jedes Argument, also einmal hallo einmal Welt,
in jener eigenen Zeile stehen. Wenn ich so einen Programm implementieren möchte,
beginne ich zunächst mit der Main-Funktion. Das heißt, ich öffne
eine Quertex-Dateiти wie zum Beispiel l-echo nenne.
Und fang an die Main Funktion zu implementieren.
Die Signatur der Main sieht vor, dass sie als Rückgabewert ein Integer hat und dass sie zwei Argumente erwartet.
Zum einen ein Integer, der angibt mit wieviel Argumenten das Programm aufgerufen wurde
und ein Array von Zeigern, das auf die einzelnen Parameter verweist.
Die Besonderheit an der Stelle ist, dass an der Stelle 0 des AkvArrays immer der Name
des auszuführenden Programmes steht.
Darauf kann ich zugreifen, indem ich Akv an der Stelle 0 referenziere.
Wenn ich etwas auf der Kommandozeile ausgeben möchte, kann ich das zum Beispiel mit der
Puts-Funktion machen.
Dazu öffne ich mal die Monpage.
Hier steht die Puts-Funktion beschrieben.
Sie erwartet als Argument ein String namens s und hat einen integer als Rückgabewert.
Wenn ich näheres zu der Funktion puts wissen möchte, scrollen wir einfach runter und
kann nachlesen, was puts macht.
Hier steht, dass puts den übergebenen String s ausgibt und am Ende eine neue Zeile schreibt.
Und dies geschieht auf der Standardausgabe.
Und das klingt ungefähr nach dem, was wir für diese Aufgabe brauchen.
Das bedeutet, ich kann hier einfach schreiben puts und übergebe als Argument den String
akv an der Stelle 0.
Das Problem ist jetzt, dass die Funktion puts noch nicht bekannt ist.
Das heißt, ich muss die entsprechende Header-Datei inkludieren.
Dazu kann ich ebenfalls auf der Monpage nachschlagen und sehe ganz oben unter Synopsis, dass ich
dazu die Header-Datei stdio inkludieren muss.
Jetzt kann ich erstmal prüfen, ob das, was ich bisher geschrieben habe, funktioniert.
Dazu kompiliere ich das Programm und führe es aus.
Und tatsächlich ist die Ausgabe jetzt das, was ich erwartet habe, nämlich der Name des
Programms.
Wenn ich aber weitere Argumente angebe, geschieht nichts damit.
Das wollen wir jetzt ändern, indem wir anstelle des eigenen Namens die weiteren Argumente ausgeben.
Dies kann ich am besten tun, indem ich in einer Schleife über die restlichen Argumente
etablieren.
Jetzt prüfe ich das Ganze, indem ich es wieder kompiliere und erneut ausführe.
Und jetzt ist die Ausgabe tatsächlich so, wie man sie fast erwartet.
Aktuell wird zweimal der Name des eigenen Programms ausgegeben, gefolgt von den weiteren Argumenten.
Ich lösche nun das erste Puts, was zur Folge hat, dass nach der erneuten Kompilierung und
Ausführung nur noch einmal der Name des Programms steht und die weiteren Argumente.
Wenn ich nun den Namen des Programms ganz weglassen möchte, dann muss ich in der Vorschläge
dafür sorgen, dass die erste Stelle in dem Array nicht betrachtet wird.
Dies kann ich machen, indem ich den initialen Index von 0 auf 1 setze.
Jetzt ist die Ausgabe so, wie gefordert.
Zum Abschluss sollte ich noch prüfen, ob ich mich an alle Konventionen gehalten habe.
Zugänglich über
Offener Zugang
Dauer
00:05:34 Min
Aufnahmedatum
2021-04-22
Hochgeladen am
2021-04-22 12:06:05
Sprache
de-DE