Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Hinweise zur satzorientierten Ein-/Ausgabe

&pagelevel(5)&pagelevel

Satzorientierte Ein-/Ausgabe ist für SAM-, ISAM- und PAM-Dateien möglich.

Mit den Funktionen fopen() bzw. freopen() muss die Datei stets im Binärmodus und mit dem Zusatz type=record geöffnet werden.

Mit den Funktionen creat() bzw. open() muss die Datei stets im Binärmodus und der Angabe O_RECORD eröffnet werden.

Ein-/Ausgabefunktionen, die Zeichen oder Zeichenketten (bis \n) einlesen oder ausgeben, sind bei satzorientierter Ein-/Ausgabe nicht anwendbar.

Verfügbare Ein-/Ausgabefunktionen

Folgende Funktionen stehen zur Verarbeitung von Dateien mit  satzorientierter Ein-/Ausgabe zur Verfügung:

creat(), fopen(),
freopen(), open()

Öffnen

close(), fclose()

Schließen

fread(), read()

Lesen

fwrite(), write()

Schreiben

fsetpos(), fgetpos()

Positionieren auf ermittelte Position

fseek(), lseek()

Positionieren auf Dateianfang/Dateiende

rewind()

Positionieren auf Dateianfang

flocate()

explizit Positionieren in einer ISAM-Datei

fdelrec()

Löschen eines Satzes in einer ISAM-Datei

Außerdem sind folgende Funktionen zur Dateiverwaltung bzw. Fehlerbehandlung unverändert anwendbar:

feof(), ferror(), _fnlinserted(), clearerr(), unlink(), remove(), rename()

Alle hier nicht aufgeführten Ein-/Ausgabefunktionen stehen für die satzorientierte Ein-/Ausgabe nicht zur Verfügung und werden mit einem Fehler-Returnwert abgewiesen.
Die beiden Makros getc() und putc() haben jedoch aus Performancegründen keine Prüfung. Das Verhalten ist undefiniert, wenn diese Makros auf Dateien mit satzorientierter Ein-/Ausgabe angewendet werden.

Verarbeitung einer Datei in satz- und stromorientierter Ein-/Ausgabe

Es ist möglich, eine Datei, die mit satzorientierter Ein-/Ausgabe erstellt wurde, für stromorientierte Ein-/Ausgabe zu öffnen und umgekehrt. Es ist jedoch zu beachten, dass bei stromorientierter Ein-/Ausgabe nicht alle Dateiattribute unterstützt werden, die bei satzorientierter Ein-/Ausgabe möglich sind.

FCBTYPE einer neu zu erstellenden Datei

Der FCBTYPE einer neu zu erstellenden Datei kann folgendermaßen festgelegt werden:

  • Angabe in einem ADD-FILE-LINK-Kommando und Verwendung des LINK-Namens bei den Funktionen fopen() bzw. freopen().

  • Angabe des forg-Parameters bei den Funktionen fopen() bzw. freopen(), und zwar:
    forg=seq: Es wird eine SAM-Datei erstellt
    forg=key: Es wird eine ISAM-Datei erstellt.

Es gibt folgende Einschränkungen für den FCBTYPE einer Datei und die Angaben bei fopen() bzw. freopen():

  • Bei Angabe von type=record muss die Datei den FCBTYPE SAM, PAM oder ISAM haben.

  • Bei Angabe von forg=seq muss die Datei den FCBTYPE SAM oder PAM haben.

  • Bei Angabe von forg=key muss die Datei den FCBTYPE ISAM haben.

  • Die Angabe des Anfügemodus "a" ist für ISAM-Dateien unzulässig. Die Position bestimmt sich aus dem Schlüssel im Satz.

Es gibt folgende Einschränkungen für den FCBTYPE einer Datei und die Angaben bei ccreat() bzw. open():

  • Bei Angabe von O-RECORD muss die Datei den FCBTYPE SAM, PAM oder ISAM haben.

Mehrfachschlüssel bei ISAM-Dateien

Standardmäßig sind für ISAM-Dateien keine Mehrfachschlüssel zugelassen. Durch die Angabe von DUP-KEY=Y in einem ADD-FILE-LINK-Kommando können jedoch Mehrfachschlüssel verwendet werden.