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-Anweisung

&pagelevel(4)&pagelevel

Funktion

Für sequenzielle Dateiorganisation: Die CLOSE-Anweisung beendet die Verarbeitung von Ein-/Ausgabe-Spulen, Einheiten (UNIT) und Dateien, wobei wahlweise Rückspul- oder Sperrfunktionen durchgeführt werden.

Für relative und indizierte Dateiorganisation: Die CLOSE-Anweisung beendet die Verarbeitung von Dateien, wobei wahlweise Sperrfunktionen durchgeführt werden.

Format 1 für sequenzielle Dateiorganisation


CLOSE {dateiname [ [{ REEL | UNIT }] [FOR REMOVAL]
                  | WITH { NO REWIND | LOCK }
                 ]
      }...


Format 2 für relative und indizierte Dateiorganisation


CLOSE {dateiname-1 [WITH LOCK]}...


Syntaxregeln

  1. Die in der CLOSE-Anweisung angesprochenen Dateien können verschiedene Organisation oder Zugriffsart haben.

  2. Die Ausdrücke REEL und UNIT sind gleichbedeutend und innerhalb einer CLOSE-Anweisung voll austauschbar. Die Behandlung von sequenziellen Plattenspeicherdateien ist logisch gleichzusetzen mit der Behandlung von Dateien auf Band oder ähnlichen sequenziellen Medien.

  3. Bei zeilensequenziellen Dateien ist von den zusätzlichen Angaben nur WITH LOCK zulässig.

Allgemeine Regeln

  1. Eine CLOSE-Anweisung darf nur für eine eröffnete Datei ausgeführt werden.

  2. Die Angaben in der CLOSE-Anweisung bedeuten:

    REEL

    Die Verarbeitung der aktuellen Magnetbandspule soll abgeschlossen werden.

    UNIT

    Die Verarbeitung der aktuellen Plattenspeichereinheit soll abgeschlossen werden.

    NO REWIND

    Nach Abschluss der Verarbeitung einer Banddatei soll diese nicht auf den Spulenanfang zurückpositioniert werden.

    LOCK

    Die Datei kann im selben Programmlauf nicht wieder eröffnet werden.

    REMOVAL

    Die aktuelle Spule einer Magnetbanddatei soll entladen werden.

  3. Um die Wirkung von verschiedenen CLOSE-Anweisungen, angewandt auf verschie

    dene Speichermedien, zu zeigen, werden alle Ein-/Ausgabe-Dateien in die folgenden Kategorien eingeteilt:
    1. UNIT-RECORD-Datenträgerdatei (Einheitsdatensatzdatei):

      Eine einem Ein- oder Ausgabe-Gerät zugewiesene Datei, für die die Begriffe Rückspulen, UNIT und Spule keine Bedeutung haben.
    2. Sequenzielle Eindatenträgerdatei:

      Eine sequenzielle Datei, die vollkommen auf einem Datenträger enthalten ist. Auf diesem Datenträger können sich mehrere Dateien befinden.
    3. Sequenzielle Mehrdatenträgerdatei:

      Eine sequenzielle Datei, die sich über mehr als einen Datenträger erstreckt.
  4. Die Ergebnisse der Ausführung der verschiedenen CLOSE-Anweisungen sind - bezogen auf die jeweilige Dateikategorie - in der folgenden Tabelle zusammengefasst:

    CLOSE-Anweisung Kategorie

    Dateien-sequenziell organisiert

    relativ/indiziert

    Einheitsdaten-satz-Datei

    Eindatenträ-ger-Datei

    Mehrdatenträ-ger-Datei

    Ein-/Mehrdaten-träger-Datei

    CLOSE

    C

    C, G

    C, G, A

    C

    CLOSE WITH LOCK C, E C,G,E C, G, E, A C,E
    CLOSE WITH NO REWIND

    C, H

    C, B

    C, B, A

    CLOSE
    FOR REMOVAL

    C, H

    G, D

    F, G, D

    CLOSE

    REEL/UNIT

    J

    F, G

    F, G

    CLOSE REEL/UNIT

    FOR REMOVAL

    J

    F, G, D

    F, G, D

    Tabelle 26: Zusammenhang zwischen Dateien und Angaben der CLOSE-Anweisung


    Die in der Tabelle verwendeten Symbole werden nachfolgend definiert. Falls die Defi-nition eines Symbols für eine Ein- oder Ausgabe-Datei unterschiedlich ist, werden verschiedene Symbole verwendet; andernfalls gelten die Angaben für Dateien mit Eröffnungsart INPUT, OUTPUT und I-O.

    A

    Vorhergehende Datenträger nicht berührt

    Alle Datenträger der Datei, die vor der aktuellen Datenträgereinheit verarbeitet wur-den, wurden entsprechend den Standard-Datenträger-Wechselroutinen verarbeitet; ausgenommen sind die durch eine vorhergehende CLOSE-Anweisung mit Angabe REEL/UNIT angesprochenen Datenträger.

    B

    Kein Rückspulen der aktuellen Spule

    Der aktuelle Datenträger wird auf das logische Dateiende auf dem Datenträger positioniert.

    C

    Standard-Dateiabschluss

    Für Dateien, die mit INPUT- oder I-O-Angabe eröffnet wurden:

    Falls die Datei auf Dateiende positioniert ist und eine LABEL RECORDS-Klausel angegeben wurde, wird (falls eine USE-Prozedur vorhanden ist) die Standard- und Benutzer-Dateiende-Routine für Kennsatzbehandlung durchlaufen. Die Reihenfolge der Ausführung dieser beiden Routinen wird durch die USE-Prozedur festgelegt. Danach werden die Standard-Abschlussroutinen des Systems durchlaufen.

    Falls die Datei auf Dateiende positioniert ist, jedoch keine LABEL RECORDS-Klausel angegeben war, werden nur die Standard-Abschlussroutinen des Systems durchlaufen.

    Falls die Datei nicht auf Dateiende positioniert ist, werden lediglich die Standard--Abschlussroutinen des Systems durchlaufen. Selbst bei Vorhandensein von USE-Prozeduren wird in diesem Fall keine Kennsatzbehandlung durchgeführt. (Das Ende einer Eingabe- oder Ein-/Ausgabe-Datei ist erreicht, wenn die unbedingte Anweisung der AT END-Angabe der READ-Anweisung, falls angegeben, durchlaufen wurde und keine CLOSE-Anweisung durchgeführt wurde.)


    Für Dateien, die mit OUTPUT-Angabe eröffnet wurden:

    Falls Kennsatzbehandlung für diese Datei vereinbart wurde, werden die Standard-Endekennsatz-Routinen und die Benutzer-Endekennsatz-Routinen (vorausgesetzt, solche wurden durch eine USE-Prozedur angegeben) durchlaufen. Die Reihenfolge der Ausführung dieser Vereinbarungen wird durch die USE-Anweisung festgelegt. Danach werden die Standard-Abschlussprozeduren des Systems durchlaufen.

    Falls keine Kennsätze für die Datei vereinbart wurden, werden nur die Standard-Abschlussprozeduren des Systems durchgeführt.

    D

    Entladen der aktuellen Spule

    Bei Verwendung der REMOVAL-Angabe wird die aktuelle Spule einer Magnetband-datei entladen. Die weitere Verarbeitung der Datei kann nur mit der richtigen Folgespule fortgesetzt werden. Nach Ausführung einer CLOSE-Anweisung ohne die Angabe REEL/UNIT und einer OPEN-Anweisung für diese Datei ist eine erneute Verarbeitung dieser Spule möglich.

    E

    Standard-Datei-Sperrung

    Bei Verwendung der LOCK-Angabe kann die Datei im selben Programmlauf nicht wieder eröffnet werden.

    F

    Standard-Datenträgerabschluss

    Für Dateien, die mit INPUT- oder I-O-Angabe eröffnet wurden, werden die folgen-den Operationen durchgeführt:

    • Der aktuelle Datenträger ist der einzige oder der letzte Datenträger für die Datei:

      Plattenspeicherdateien

      Die Bearbeitung des aktuellen Datenblocks wird beendet. Die nächste READ-Anweisung stellt den ersten Datensatz des nachfolgenden Datenblocks zur Verfügung.

      Banddateien

      Die Bearbeitung der Spule wird beendet. Die nächste READ-Anweisung führt zu einer Ende-Bedingung.

    • Es existieren weitere Datenträger für die Datei:

      1. Datenträgerwechsel.

      2. USE-Prozeduren zur Anfangskennsatz-Verarbeitung (Standard- und

        Benutzer-Kennsätze), falls durch eine USE-Anweisung vereinbart. Die Reihenfolge der Ausführung dieser Prozeduren wird durch die USE-Anweisung festgelegt.
      3. Der nächste Datensatz auf dem neuen Datenträger wird für den folgenden Lesevorgang zur Verfügung gestellt.

    Für Dateien, die im Ausgabemodus eröffnet wurden, werden die folgenden Operationen durchgeführt:

    • Plattenspeicherdateien

      Die Bearbeitung des aktuellen Datenblocks wird beendet. Die nächste WRITE-Anweisung erstellt einen neuen Datenblock.

    • Banddateien

      1. Prozedurvereinbarungs-Prozeduren zur Endekennsatz-Verarbeitung (Standard- und Benutzerkennsätze), falls durch eine USE-Anweisung vereinbart. Dabei wird die Reihenfolge der Ausführung dieser Prozeduren durch die USE-Anweisung festgelegt.

      2. Datenträgerwechsel.

      3. Prozedurvereinbarungs-Prozeduren zur Anfangskennsatz-Verarbeitung (Standard- und Benutzer-Kennsätze), falls durch eine USE-Anweisung vereinbart. Dabei wird die Reihenfolge der Ausführung dieser Prozeduren durch die USE-Anweisung festgelegt.

    G

    Zurückspulen

    Der aktuelle Datenträger wird auf Anfang positioniert (bei Magnetbanddateien ist dies der Spulenanfang; bei Plattenspeicherdateien ist dies der Anfang der betreffenden Datei).

    H

    Der Ein-/Ausgabe-Zustand 07 wird gesetzt.

    Die optionalen Angaben werden ignoriert.

    J

    Der Ein-/Ausgabe-Zustand 07 wird gesetzt.

    Die CLOSE-Anweisung wird ignoriert.

  5. Nach Ausführung einer CLOSE-Anweisung wird der Inhalt des in der FILE STATUS-Klausel angegebenen Datenfeldes (falls eine solche Klausel vorhanden ist) aktualisiert (siehe auch „FILE STATUS-Klausel").

  6. Nach erfolgreichem Abschluss einer CLOSE-Anweisung steht der der Datei zugeordnete Satzbereich nicht mehr zur Verfügung. Die Verfügbarkeit ist nach erfolglosem Ablauf einer CLOSE-Anweisung nicht vorhersagbar.

  7. Ist eine optionale Eingabedatei nicht vorhanden, wird keine Datei-Endeverarbeitung und keine Spulen-/Bandverarbeitung durchgeführt.

  8. Sind mehrere Dateinamen angegeben, so ist die Wirkung die gleiche, wie wenn für jeden Dateinamen eine eigene CLOSE-Anweisung gegeben worden wäre.

  9. Alle Dateien, die nach Abschluss eines Prozesses noch geöffnet sind, werden geschlossen.