Ein COBOL-Programm, das im BS2000 entwickelt und zum Ablauf gebracht wird, kann unter bestimmten Voraussetzungen außer katalogisierten BS2000-Dateien auch Dateien aus dem POSIX-Dateisystem verarbeiten.
Voraussetzungen
Beim Übersetzen muss die Compileroption ENABLE-UFS-ACCESS=YES bzw. die SDF-Option RUNTIME-OPTIONS=PAR(ENABLE-UFS-ACCESS=YES) angegeben werden.
Beim Binden muss das in der CRTE-Bibliothek SYSLNK.CRTE.POSIX enthaltene POSIX-Bindeschalter-Modul eingebunden werden, und zwar vorrangig vor den Modulen in der Bibliothek SYSLNK.CRTE bzw. SYSLNK.CRTE.PARTIAL-BIND. Beim Binden mit TSOSLNK oder BINDER sollte diese Bibliothek mit einer INCLUDE- bzw. INCLUDE-MODULES-Anweisung (ohne Angabe des Modulnamens) eingebunden werden.
Beim dynamischen Binden mit dem DBL muss der Bibliothek eine BLSLIBnn mit niedrigerer nn zugewiesen werden als den nachrangig einzubindenden CRTE-Bibliotheken. Bei Programmentwicklung in der POSIX-Shell mit dem cobol-Kommando wird die CRTE-Bibliothek automatisch eingebunden.
Einschränkungen
Die Verarbeitung einer BS2000- oder POSIX-Datei unterliegt folgenden Einschränkungen:
keine Kennsatzbehandlung möglich.
keine Fixpunktausgabe für Wiederanlauf möglich.
keine Simultanverarbeitung möglich.
keine Unterstützung von Pseudo-Dateien (siehe ADD-FILE-LINK im BS2000/OSD Benutzerhandbuch „Kommandos“ [3].
Die Dateiattribute werden beim ersten Öffnen der Datei endgültig festgelegt und können später nicht mehr geändert werden.
Relative Dateien, die die BS2000-Zugriffsmethode UPAM verwenden, können nicht verarbeitet werden.
In der ALPHABET-Klausel spezifizierter Zeichensatz STANDARD-2
(International Reference Version of the ISO 7-Bit Code) wird in der CODE-SET Klausel nicht unterstützt. Ein derartiger OPEN wird zur Laufzeit mit FILE STATUS 30 abgewiesen.In den Meldungen COB9151 und COB9175 bei Fehlern beim POSIX-Dateizugriff wird statt DMS-Codes die entsprechenden SIS-Meldungsnummern eingesetzt. Das gleiche gilt auch für den an das COBOL-Objekt zurückgegebenen „extended“ File Status. Auch der zurückgegebene File Status kann vom bisher erwarteten Wert abweichen (siehe Abschnitt „Ein-/Ausgabezustände").
Die Nutzung von Dummy-Dateien wird nicht unterstützt.
Dateien >32 Gbyte können verarbeitet werden, ohne dies im /ADD-FILE-LINK-Kommando extra einschalten zu müssen.
Zuweisen einer POSIX-Datei
Die Zuweisung einer POSIX-Datei erfolgt mit einer S-Variablen namens
SYSIOL-externer-name, wobei SYSIOL- ein fester Namensbestandteil ist undexterner-name den Linknamen aus der ASSIGN-Klausel des Programms enthalten muss. externer-name darf keine Kleinbuchstaben enthalten.
Die S-Variable wird mit dem Kommando SET-VARIABLE folgendermaßen initialisiert:
/[SET-VAR] SYSIOL-externer-name= {
’*POSIX(dateiname)‘
| ’*POSIX(relative-pfadname)‘
| ’*POSIX(absolute-pfadname)‘
}
dateiname
bezeichnet die angeforderte POSIX-Datei, wenn sie im Home-Verzeichnis des POSIX-Dateisystems steht.
relativer-pfadname
ist der Dateiname mit den Dateiverzeichnisbestandteilen ab dem Home-Verzeichnis.
absoluter-pfadname
ist der Dateiname mit allen Dateiverzeichnisbestandteilen einschließlich Root-Verzeichnis (Beginn mit /).
Beispiel 14-7
für gemischte Dateiverarbeitung
COBOL-Übersetzungseinheit: ... FILE-CONTROL. SELECT POSFILE ASSIGN TO "CUST1" SELECT BS2FILE ASSIGN TO "CUST2" ...
|