Hinweise zu den C-Routinen
Hinweise zu den Routinen FOPEN, FCLOSE, FGETC, FPUTC, FGETS und FPUTS:
Diese Routinen arbeiten mit Adressen auf Dateikontrollblöcke oder mit Gerätekodes.
Beides wird von der Routine FOPEN geliefert.
Diese Routine wandelt eine Zeichenkette der Form DU:FN.EXT oder DEV: um.
Es bedeuten:
D | Laufwerk A..P |
U | Benutzernummer 0..15 |
FN | Dateiname |
EXT | Dateiextension |
In diesem Fall wird ein dynamischer Speicherbereich angefordert und zurückgegeben.
Bei Aufruf von FCLOSE wird dieser Speicherbereich wieder freigegeben.
Er umfasst den Platz für den FCB (36 Bytes), vier Rekords (512 Bytes) und internen Speicher (6 Bytes = 554 Bytes).
Bei Dateien wird, in Abhängigkeit vom gewählten Modus, folgende Aktivität ausgeführt:
r, or | Öffnen einer Datei zum Lesen. Ist die Datei nicht vorhanden, so wird ein Fehler zurückgegeben. |
w, ow | Öffnen einer Datei zum Schreiben. Ist eine Datei vorhanden, so wird diese zuvor gelöscht. |
a | Öffnen einer Datei zum Schreiben. Ist eine Datei vorhanden, so wird der Schreibzeiger auf das Ctrl-Z (End of file) positioniert, andernfalls wird eine neue Datei angelegt. |
oa | Öffnen einer Datei zum Schreiben. Ist eine Datei vorhanden, so wird der Schreibzeiger hinter den letzten Rekord positioniert, andernfalls wird eine neue Datei angelegt. |
Für Geräte wird folgender Kode erzeugt:
CON: | w | 3 |
RDR: | r | 4 |
PUN: | w | 5 |
LST: | w | 6 |
CON: | r | 7 |
NUL: | w | 8 |
NUL: | r | 9 |
Bei Aufruf der Routinen FGETC und FGETS kann als Gerätekode auch 1 gewählt werden.
Dann wird die Datei oder das Gerät gewählt, das in $STDIN definiert ist (Voreinstellung CON:).
Bei Aufruf von FPUTC und FPUTS ist Kode 2 erlaubt, es gilt die Definition in $STDOUT
(Voreinstellung ebenfalls CON:).
Ist der binäre Modus nicht gewählt, so wird
bei der Eingabe die Folge <CR><LF> zurückgegeben als <LF>
bei der Ausgabe die Folge <LF> ausgegeben als <CR><LF>
Für die Geräte existiert das Kontrollbyte $FLAGS, dessen Bits wie folgt definiert sind
xxxxxx00 | CON, gepufferte Eingabe |
xxxxxx01 | CON, ungepufferte Eingabe, <CR> wird als <LF> zurückgegeben |
xxxxxx10 | CON, ungepufferte Eingabe |
xxxxxx11 | CON, ungepufferte Eingabe, Zeichen wird nicht auf Bildschirm ausgegeben |
xxxxx1xx | CON, binäre Ausgabe |
xxxx1xxx | RDR, binäre Eingabe |
xxx1xxxx | PUN, binäre Ausgabe |
|