Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CLOSE - Datei schließen

Der CLOSE-Makroaufruf schließt Dateien, d.h. er trennt sie von dem Benutzerprogramm, in dem sie eröffnet wurden. Alle Ein-/Ausgabepuffer, die das System bei der Dateieröffnung automatisch angelegt hat, werden freigegeben. Der FCB wird mit dem Inhalt versehen, den er vor dem Eröffnen hatte.

Während der CLOSE-Verarbeitung kann das Benutzerprogramm – ähnlich wie bei der OPEN-Verarbeitung – an EXLST-Ausgängen das Band positionieren (CLOSPOS) oder Benutzerkennsätze schreiben (LABEND).

Ein CLOSE-Makroaufruf auf eine nicht geöffnete Datei wird ohne Meldungsausgabe ignoriert.

Format

Operation

Operanden

CLOSE

ALL / fcbadr / (1)

[,RWD / REPOS / DISCON / LEAVE / INVAL /
  KEEP-DATA-IN-CACHE / (0)]

[,PARMOD = 24 / 31]

Operandenbeschreibung

fcbadr

Adresse des FCB der zu schließenden Datei

(0)
Das Register 0 enthält im rechten Byte den Positionierungsschlüssel bzw. CLOSE-Modus:

X'00'

LEAVE

X'01'

DISCON

X'02'

REPOS

X'03'

RWD

X'05'

INVAL (nur bei PARMOD=31)

X'06'

KEEP-DATA-IN-CACHE

(1)
Register 1 enthält die FCB-Adresse.

ALL

Schließt alle Dateien, die im laufenden Programm geöffnet, aber noch nicht geschlossen wurden. Systemdateien und EAM-Dateien sind vom CLOSE nicht betroffen. Wird eine Datei nicht ordnungsgemäß geschlossen, so erfolgt eine Warnung.

DISCON

Für Banddateien:
das Band wird auf Bandanfang positioniert und entladen bzw. freigegeben. Ein evtl. mit einem FILE-Aufruf reserviertes Gerät bleibt dem Auftrag weiterhin zugeordnet; es wird erst durch einen nachfolgenden RELEASE-Aufruf (REL-Makro) freigegeben.

INVAL

Für Plattendateien:
Die zur Datei im Cache liegenden Seiten sollen nur invalidiert, aber nicht auf die Platte zurückgeschrieben werden, d.h. nach dem CLOSE sind die Daten verloren. INVAL kann nur bei PARMOD=31 angegeben werden.

KEEP-DATA-IN-CACHE

Für Plattendateien:
Die Daten, die in einem Cache zwischengepuffert wurden, werden beim CLOSE nicht auf die Platte gesichert. Ein nachfolgender OPEN auf die gleiche Datei kann dann diese Daten sofort nutzen.

Hinweis

So geschlossene Dateien können mit dem Kommando SHOW-FILE-ATTRIBUTES (Operand CACHE-NOT-SAVED) angezeigt werden. Ein Sicherung der Daten aus dem Cache auf die Platte kann entweder durch einen weiteren OPEN/CLOSE-Zyklus ohne diese Funktion oder implizit während des Cache-Abbaus mit dem Systemverwalterkommando STOP-PUBSET-CACHING oder EXPORT-PUBSET erzwungen werden. Eine dateispezifische Cache-Sicherung für geschlossene Dateien ist nicht möglich.

LEAVE

Für Banddateien:
das Band wird abhängig von der LABEL-Angabe bei FILE oder FCB auf das logische Dateiende positioniert.

Wurde im FILE-Aufruf der Operand BYPASS angegeben, verändert sich die Bandposition nicht, und die CLOSPOS-Routine wird nicht aktiviert. Ansonsten sind die LEAVE-Funktionen der „REPOS“-Tabelle zu entnehmen: REPOS für OPENnot equalREVERSE entspricht LEAVE für OPEN=REVERSE und umgekehrt.

Bei LEAVE für OPEN OUTPUT ist zu beachten, dass keine CLOSPOS-Routine aktiviert und die Bandposition nicht verändert wird.

Für Multifile-Bänder gilt: Wenn der Operand LEAVE nicht angegeben wird, wird beim CLOSE-Aufruf das Band an den Anfang zurückgespult.

PARMOD

Gibt den Generierungsmodus für den Makroaufruf an.

Voreinstellung:

der durch den Makro GPARMOD oder durch den Assembler voreingestellte Wert für den Generierungsmodus

= 24
Der Makroaufruf wird mit der Expansion für die 24-Bit-Schnittstelle aufgelöst. Das Objekt ist nur im 24-Bit-Adressierungsmodus ablauffähig.

= 31
Der Makroaufruf wird adressierungsmodus-unabhängig generiert.

REPOS

Für Banddateien:
positioniert ein Band abhängig von der LABEL-Angabe in FILE oder FCB auf den logischen Dateianfang.

Wurde im FILE-Aufruf der Operand BYPASS angegeben, so wird das Band zurückgespult, und die CLOSPOS-Routine wird nicht aktiviert. In allen anderen Fällen gilt die folgende Tabelle (Band positionieren):

LABEL-Angabe

OPEN not equal REVERSE

OPEN = REVERSE

LABEL=(STD,n)

das Band wird automatisch auf HDR1 positioniert;
FSEQ wird nicht verändert

das Band wird auf die Bandmarke hinter dem letzten EOF-Kennsatz der Datei positioniert; FSEQ wird um 1 erhöht

LABEL=NSTD

EXLST: CLOSPOS=NO, das Band wird automatisch auf die Bandanfangsmarke positioniert;
FSEQ wird nicht verändert

EXLST: CLOSPOS=NO, das Band wird auf die Bandanfangsmarke positioniert;
FSEQ=0

EXLST: CLOSPOS not equal NO der Benutzer muss in einer Routine das Band selbst positionieren;
FSEQ wird nicht verändert

EXLST: CLOSPOS not equal NO der Benutzer muss in der CLOSPOS-Routine das Band selbst positionieren;
FSEQ wird nicht verändert

LABEL=NO


EXLST: CLOSPOS=NO, das Band wird automatisch auf die Abschnittsmarke hinter dem letzten Block der Datei positioniert, FSEQ um 1 erhöht

bei OPEN OUTPUT: keine CLOSPOS-Routine, keine Positionierung

RWD

Voreinstellung für Banddateien:
das Band wird zurückgespult und auf Bandanfang positioniert; FSEQ wird – auch bei Dateien mit NSTD-Kennsätzen – auf 0 gesetzt, d.h. FSEQ zeigt auf die erste Datei der Dateimenge/des Bandes.

Hinweis zur Programmierung

Der CLOSE-Makroaufruf zerstört die Register 0, 1, 14 und 15.