Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL CLOSE Statement

Intermediate 🕑 10 min read 👁 0 views

COBOL CLOSE Statement

The CLOSE statement terminates the processing of a file.

Syntax

CLOSE file-name-1 [WITH LOCK] [file-name-2 ...]

Example Program

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CLOSE-DEMO.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT INPUT-FILE ASSIGN TO 'INPUT.DAT'
               FILE STATUS IS WS-IN-STATUS.
           SELECT OUTPUT-FILE ASSIGN TO 'OUTPUT.DAT'
               FILE STATUS IS WS-OUT-STATUS.
           SELECT REPORT-FILE ASSIGN TO 'REPORT.TXT'
               FILE STATUS IS WS-RPT-STATUS.

       DATA DIVISION.
       FILE SECTION.
       FD INPUT-FILE.
       01 INPUT-REC       PIC X(80).
       FD OUTPUT-FILE.
       01 OUTPUT-REC      PIC X(80).
       FD REPORT-FILE.
       01 REPORT-REC      PIC X(80).

       WORKING-STORAGE SECTION.
       01 WS-IN-STATUS    PIC XX.
       01 WS-OUT-STATUS   PIC XX.
       01 WS-RPT-STATUS   PIC XX.

       PROCEDURE DIVISION.
           OPEN INPUT INPUT-FILE
           OPEN OUTPUT OUTPUT-FILE
           OPEN OUTPUT REPORT-FILE

           DISPLAY 'Files opened'

      * Process files...

      * Close files individually
           CLOSE INPUT-FILE
           DISPLAY 'Input closed: ' WS-IN-STATUS

      * Close multiple files at once
           CLOSE OUTPUT-FILE REPORT-FILE
           DISPLAY 'Output closed: ' WS-OUT-STATUS
           DISPLAY 'Report closed: ' WS-RPT-STATUS

      * Close with lock prevents reopening
      *    CLOSE INPUT-FILE WITH LOCK

           STOP RUN.

Expected Output

Files opened
Input closed: 00
Output closed: 00
Report closed: 00

Key Points

  • Always CLOSE opened files
  • Check FILE STATUS after CLOSE
  • WITH LOCK prevents reopening
  • Can close multiple files in one statement
  • Unclosed files may lose data