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