Ein Bildschirmersatz

Verfasser: (Norbert) Südland, Aalen, Deutschland

Angesichts einer noch nicht völlig vollendeten Liste aller Unikode-Zeichen für die Bildschirmausgabe gibt es einen willkommenen Ersatz: die Protokolldatei.

In C werden die Eingabe über eine Tastatur oder die Ausgabe auf den Bildschirm als Lese- und Schreiboperationen entsprechender Dateien ausgeführt. Somit kann hier ersatzweise auch in eine Datei geschrieben werden, deren heutiger Unikode-Schriftsatz gegenüber Windows 95 deutlich erweitert wurde.

Es gibt mindestens drei verschiedene Unikode-Kodierungen bereits unter Windows XP:

Das erste Programmbeispiel ist nun also abweichend von Kernighan und Ritchie [1988KR] ein Programm, das keine Bildschirmausgabe, sondern nur eine Dateiausgabe vornimmt. Hier bietet sich ein Programm an, das die voreingestellten Schalter des Kompilierers auflistet.

Programmprotokolle heißen analog zum Logbuch einer Schifffahrt auf Englisch log file und enden mit .log. Solche Protokolle sind auch möglich, wenn der Benutzer eines Programms viel mit der Maus unternimmt. Die Protokolldatei ist im Gegensatz zu Tastatur und Bildschirm nicht zu Beginn des Programms automatisch geöffnet, sondern muss erst geöffnet und dann beschrieben werden. Windows ist so eingerichtet, dass Tastatur und Bildschirm für C-Programme im Textmodus geöffnet wurden und daher je nach Windows-Fassung keine Unikode-Zeichen verarbeiten können, wenn im Programm auf Windows-Funktionen verzichtet wird:

Da es sein kann, dass die Protokolldatei existiert und durch Schreibschutz geschützt ist, muss der Programmierer prüfen, ob das Anlegen seiner Protokolldatei erfolgreich war. Mit dem Programmende werden automatisch auch alle offenen Dateien geschlossen. Trotzdem lohnt es sich, auch die Protokolldatei explizit am Ende zu schließen.

Diese Prozedur soll nun

  1. zuerst mit 7-Bit-ASCII,
  2. dann mit 8-Bit-ASCII
  3. und schließlich mit 16-Bit-Unikode
vorgestellt werden.

Quellenverzeichnis (nächster Beitrag) Inhaltsverzeichnis Ein historisches Problem (voriger Beitrag)
Esperanta versio English Version