Binärdateien (SAM)
Standardmäßig wird mit fester Satzlänge (F) gearbeitet. Beim Schließen der Datei wird der letzte Satz mit binären Nullen (falls nötig) aufgefüllt. Wird diese Datei neuerlich geöffnet, und es werden Daten an das Ende der Datei geschrieben, wird stets ein neuer Satz begonnen. Das Weiterschreiben erfolgt also hinter den binären Nullen.
Wird mit variabler Satzlänge gearbeitet (V oder U), kann das Weiterschreiben bytebezogen erfolgen. Allerdings sind durch die variablen Satzlängen beim Positionieren (z.B. mit fseek()
, ftell()
) Performanceverluste in Kauf zu nehmen.
Binärdateien (PAM)
Um bei PAM-Dateien ein bytebezogenes Fortschreiben (nach einem Schließen und neuerlichem Öffnen) zu ermöglichen, schreibt das C-Laufzeitsystem Verwaltungsdaten an das Ende der Datei. Diese Daten werden zum Zeitpunkt des Öffnens oder Schließens konsistent verwaltet. Aus diesem Grund ist ein simultanes Bearbeiten einer PAM-Datei durch verschiedene Tasks nicht möglich, sofern eine der beteiligten Tasks die Datei verlängert.Außerdem setzt das C-Laufzeitsystem keine Sperren. Werden Daten von mehreren Anwendern verändert, kann dies zu inkonsistenten Zuständen führen.
Textdateien (SAM, ISAM)
Werden SAM- oder ISAM-Dateien im Update-Modus verarbeitet, darf beim Ändern bereits existierender Sätze die ursprüngliche Satzlänge nicht geändert werden. Das heißt, ein Neue-Zeile-Zeichen (\n
) darf nicht in ein anderes Zeichen geändert werden oder umgekehrt.