Hallo, ja, dann herzlich willkommen heute zur Systemprogrammierung. Wir hatten uns das letzte Mal ja noch
ein ganzes Stück weit mit dem Thema Zeiger beschäftigt. Gut, das Ganze wird uns in dem
Rahmen der Übungen jetzt natürlich intensiv weiter beschäftigen. Es gibt ja im Wesentlichen
ja keine Übungsaufgabe in der Programmiersprache C, die man irgendwie vernünftig ohne das Thema
Zeiger behandeln kann. Ich will heute zum Abschluss von diesem C-Kapitel noch ganz kurz auf so diesen
letzten Abschnitt eingehen, werde da aber ein Stück weit auch drüber fliegen und sehe die Folien
einfach auch zum gewissen Teil einfach auch, damit man ein kompaktes Nachschlagewerk über die Themen
hat und sich das anhand von den Folien noch mal angucken kann. Das Thema heute ist eine Ausgabe
zuerst und dann anschließend will ich mit dem dritten Kapitel weitermachen, wo es dann darum geht,
wie kommt man jetzt eigentlich von so einem C-Programm, das man programmiert hat, zu dem
ablaufenden Programm, also dem Prozess. Also ein paar Worte zur Einausgabe vorneweg. Die
Einausgabefunktionen in der Programmiersprache C sind nicht Bestandteil der Sprache, wie das in
vielen anderen Programmiersprachen eigentlich üblich ist, sondern es sind im Endeffekt einfach
normale Funktionen und diese Funktionen sind Bestandteil in dieser Standardfunktionsbibliothek,
die zusammen mit dem C-Compiler mitgeliefert wird. In dieser Funktionsbibliothek sind eben
solche Sachen wie die Stringfunktion, also Stringcopy, Stringlang, Stringcat und was wir
alles so hier in Beispielen kennengelernt haben, gibt es da drin das QuickSort, das in der Einausgabe
jetzt dann benutzt wird, ist Bestandteil von dieser Funktionsbibliothek. Auch das Merlock
gehört dazu und genauso eben die Einausgabefunktion. Die Schnittstelle ist relativ einfach,
von der Bedienung her ist auch sehr effizient programmiert, es ist portabel und es ist auch
sehr systemnah. Dahinter verbergen sich dann die eigentlichen Systemfunktionen, das sind so Sachen,
wie Read und Write, also Funktionen, mit denen man einfach Byte-Ströme ausgeben kann oder einlesen
kann. Die Funktionen dazu gehört, man kann Dateien, den Namen man kennt öffnen und man kann sie auch
wieder zumachen und man kann dann aus solchen Dateien Zeichen lesen oder schreiben, man kann ganze
Zeilen lesen oder auch beliebig große Datenblöcke und es gibt Funktionen für die Format der
Einausgabe. Wir kennen einige von diesen Funktionen aus den Beispielen jetzt schon und haben die
eigentlich mehr oder weniger selbstverständlich schon verwendet und ist eigentlich auch kein großes
Hexenwerk dahinter. Zu den Rahmenbedingungen muss man noch wissen, jedes Programm, das man laufen
lässt, jedes C-Programm erhält beim Starten automatisch drei Einausgabe-Kanäle, das ist die
Standard-Eingabe, der Standard-Input, der normalerweise mit der Tastatur verbunden ist. Da ist
noch eine Besonderheit, wenn man, also normalerweise liest man ein Programm zum Beispiel mit der
Funktion Get-Character, Get-C oder Get-Car, ja so lange bis man das Ende der Datei erreicht hat,
von der man liest und wenn man das Ende der Datei erreicht hat, dann wird einem sowas wie
Ender Pfeil signalisiert. Die Frage ist natürlich, wenn ich von der Tastatur lese, wann ist die
Tastatur zu Ende? Und da gibt es ein besonderes Zeichen, Control oder Steuerung D. Wenn man das
am Zeilenanfang, ist aber wichtig, dass es also am Anfang der Zeile steht, eingibt, dann wird nicht
etwa dieses Zeichen Control D, das Hexadezimal der Wert 4 wäre, oder numerisch Wert 4 wäre in dieser
internen Kodierung von Charakteren, es wird also nicht dieses Zeichen mit dem Wert 4 an das Programm
geliefert, sondern das Betriebssystem erkennt, ok, da wurde Control D eingegeben und es signalisiert
dann der Read-Funktion, dass jetzt nichts mehr kommt und da wird dann dieses Ender Pfeil draus
gemacht. Das ist also eine spezielle Funktion des Tastatur-Treibers im Betriebssystem, dass
er das eben entsprechend umwandelt. So, man kann beim normalen Programmaufruf und das denke ich
kennen Sie aus der normalen Benutzung vom Unix-System her, Sie können mit dem kleiner Zeichen eben
die Standard-Eingabe umleiten auf irgendeine Datei und dann wird eben nicht von der Tastatur
gelesen, sondern eben aus dieser Datei und wenn das Dateiende erreicht wird, wird eben auch dieses
Ender Pfeil signalisiert. Die Standard-Ausgabe kann man auch umleiten, die ist normalerweise mit dem
Bildschirm oder dem Fenster, in dem man das Programm gestartet hatte, verbunden und mit dem
größer Zeichen, wenn man in der Shell ein Programm startet, kann man mit dem größer Zeichen eben die
Ausgabe in der Datei umleiten. Der Standard-Fehler-Kanal ist getrennt vom Standard-Ausgabe-Kanal,
das ist also der zweite Ausgabe-Kanal, der ist normalerweise ebenfalls mit dem Bildschirm
Presenters
Zugänglich über
Offener Zugang
Dauer
01:26:42 Min
Aufnahmedatum
2012-11-12
Hochgeladen am
2012-11-26 16:01:16
Sprache
de-DE