Im Zusammenhang mit höheren Programmiersprachen/Programmiersystemen gibt es zwei unterschiedliche Aspekte der Dateibearbeitung:
Dateibearbeitung im Rahmen der Programmerstellung durch Compiler
Dateibearbeitung beim Ablauf eines vom einem Compiler/Programmiersystem erzeugten Objekts.
Dateibearbeitung durch Compiler
Die Unterstützung von Quellprogrammen >= 32 GB ist weder notwendig noch wünschenswert – Eingabeobjekte dieser Größe dürften kaum handhabbar sein. Das gleiche gilt für die von Compilern erzeugten Ausgabeobjekte wie Objektmodule, Listings und Diagnoseausgaben.
Soweit die entsprechenden Objekte in Bibliotheken verwaltet werden, darf die Größe der Bibliothek 32 GB überschreiten, nicht aber die Größe der Bibliothekselemente.
Dateibearbeitung durch Laufzeitsysteme
Für die Verträglichkeit einzelner Laufzeitsysteme mit großen Dateien (entsprechend Produktklasse B) wird auf die Dokumentation des betreffenden Laufzeitsysteme verwiesen.
COBOL
Für COBOL-Programme, die mit COBOL85 übersetzt sind, wird der Versuch, mit einer großen Datei zu arbeiten, mit Filestatus '9x' abgewiesen.
Eine Umgehung dieser Einschränkung durch die explizite Angabe des Kommandos ADD-FILE-LINK ...,EXCEED-32GB=*ALLOWED ist unzulässig und führt zu undefiniertem Verhalten, insbesondere zur Auslassung notwendiger Prüfungen.
Für Programme, die mit COBOL2000 übersetzt sind, ist der Zugriff auf Dateien >= 32 GB über die COBOL-Dateiorganisation SEQUENTIAL, LINE SEQUENTIAL und INDEXED möglich.
Die COBOL-Dateiorganisation RELATIVE wird nur bei der Abbildung auf BS2000-ISAM mit Dateien >= 32 GB unterstützt.
Für BS2000-Dateien sowie POSIX-Dateien der Organisation SEQUENTIAL und RELATI-VE gibt es keine durch das Produkt COBOL verursachte Einschränkung auf Dateien < 32 GB.
Dateien der Organisation INDEXED sind im POSIX-Dateisystem weiterhin in der Größe beschränkt.
C
Für die korrekte Verarbeitung von BS2000-Dateien >= 32 GB steht die volle Funktionalität der Schnittstellenfamilie open64 zur Verfügung. Für die Beschreibung dieser Schnittstellen wird auf das zugehörige Handbuch „C-Bibliotheksfunktionen für POSIX-Anwendungen“ [1] verwiesen.
C++
Die im Lieferumfang von CRTE enthaltene Schnittstelle IOSTREAM bietet keine Unterstützung großer Dateien. Die Verwendung von IOSTREAM für das Öffnen großer Dateien schlägt fehl. Standardmäßig wird außer dem Returncode Null keine weitere Information (insbesondere keine Fehlermeldung) geliefert.
Die Variable „errno“ liefert den Wert 3 (DMS ERROR
).
Falls C++-Programme Schnittstellen auf große Dateien benötigen, müssen sie mit dem C API (open64) arbeiten (siehe Abschnitt „C“).