blob: 4338cf000ec7b4d8f1d4941dede350da2948c9de [file] [log] [blame]
>>PUSH SOURCE FORMAT
>>SOURCE FIXED
* Include the posix-stat function
COPY posix-stat.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* MODIFY AFTER SUCCESSFUL TESTING / IMPLEMENTATION (VPH)
* This function is in the public domain.
* Contributed by James K. Lowden of Cobolworx in August 2024
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
IDENTIFICATION DIVISION.
PROGRAM-ID. CBL_CHECK_FILE_EXIST.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 FUNC-RETURN-VALUE PIC 9(8) COMP-5.
01 STAT-BUFFER.
COPY statbuf.
LINKAGE SECTION.
77 RETURN-CODE PIC 9(8) COMP-5.
01 FILE-PATH PIC X ANY LENGTH.
01 FI-FILE-INFO.
05 FI-FILE-SIZE-IN-BYTES PIC 9(8) COMP-4.
05 FI-FILE-MOD-DATE-TIME.
10 FI-FILE-DATE PIC 9(8) COMP-4.
10 FI-FILE-TIME PIC 9(8) COMP-4.
PROCEDURE DIVISION USING FILE-PATH, FI-FILE-INFO,
RETURNING RETURN-CODE.
MOVE FUNCTION posix-stat(FILE-PATH, STAT-BUFFER)
TO FUNC-RETURN-VALUE.
IF FUNC-RETURN-VALUE = ZERO
THEN
MOVE ZERO TO RETURN-CODE
MOVE st_size TO FI-FILE-SIZE-IN-BYTES
MOVE st_mtime TO FI-FILE-MOD-DATE-TIME
ELSE
MOVE 1 TO RETURN-CODE
MOVE ZERO TO FI-FILE-SIZE-IN-BYTES
MOVE ZERO TO FI-FILE-DATE
MOVE ZERO TO FI-FILE-TIME.
END PROGRAM CBL_CHECK_FILE_EXIST.
>> POP SOURCE FORMAT
`