Für COBOL-Programme, die in POSIX ablaufen, ist in einigen Bereichen ein gegenüber dem Ablauf im BS2000 abweichendes Verhalten zu beachten:
Ein-/Ausgabe geringer Datenmengen
Den COBOL2000-Herstellernamen in ACCEPT-/DISPLAY-Anweisungen zur Ein-/Ausgabe kleiner Datenmengen sind in POSIX folgende Standard-Ein-/Ausgabeströme zugeordnet:
COBOL2000 |
BS2000 |
POSIX |
TERMINAL |
SYSDTA |
stdin |
SYSIPT |
SYSIPT |
undefiniert |
TERMINAL |
SYSOUT |
stdout |
PRINTER |
SYSLST |
stdout |
PRINTER01..99 |
SYSLST01..99 |
undefiniert |
SYSOPT |
SYSOPT |
undefiniert |
CONSOLE |
CONSOLE |
undefiniert |
Sortieren und Mischen
Die Sortierdatei wird automatisch im BS2000-Dateisystem abgelegt, und der POSIX-Nutzer hat auf sie keinen Zugriff.
Jobvariablen
Die Verwendung von BS2000-Jobvariablen ist bei Programmablauf in POSIX nicht möglich.
Auftrags- und Benutzerschalter
Die Verwendung von BS2000-Auftrags- und Benutzerschaltern ist bei Programmablauf in POSIX nicht sinnvoll.
Dateiverarbeitung
Die Verknüpfung zwischen dem externen Dateinamen in der ASSIGN-Klausel und dem Dateinamen im POSIX-Dateisystem wird über eine Umgebungsvariable hergestellt, deren Name identisch mit dem externen Dateinamen in der ASSIGN-Klausel ist. Der Name der Umgebungsvariablen muss immer in Großbuchstaben geschrieben werden. Ausführliche Informationen hierzu finden Sie in Abschnitt „Programmablauf in der POSIX-Shell".
Nach einem erfolglosen OPEN INPUT auf eine Datei, für die nicht OPTIONAL angegeben wurde, wird der Programmablauf nicht unterbrochen.
Einige Werte des Ein-/Ausgabezustands verändern sich in POSIX:
BS2000 POSIX 37 30 93, 94, 95 90 Im erweiterten Ein-/Ausgabezustand, der sich in der FILE STATUS-Klausel mit dateiname-2 anfordern lässt, wird statt des (BS2000-) DVS-Codes der (POSIX-) SIS-Code ausgegeben.
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.
COB90xx-Meldungen gehen im POSIX auf stderr.
Repository-Nutzung
Zuweisen eines oder mehrerer Repositories für die Eingabe und eines für die Ausgabe ist nicht möglich. Es steht nur das Default-Repository SYS.PROG.LIB im BS2000 für diesen Zweck zur Verfügung (eine Zuweisung ist nicht nötig).