PGM PARM(&DIR) /*----------------------------------------------------------------*/ /* CHKIFS : IFS ストリーム・ファイルの存在検査 */ /* */ /* SRCTYPE : CLLE */ /* */ /* CRTCLMOD QTEMP/CHKIFSCL SRCFILE(MYSRCLIB/QCLSRC) */ /* AUT(*ALL) */ /* CRTPGM MYLIB/CHKIFSCL MODULE(QTEMP/CHKIFSCL) */ /* BNDSRVPGM(QSYS/QP0LLIB1) ACTGRP(*NEW) */ /* AUT(*ALL) */ /*----------------------------------------------------------------*/ DCL VAR(&MSG) TYPE(*CHAR) LEN(132) DCL VAR(&DIR) TYPE(*CHAR) LEN(256) DCL VAR(&PATH) TYPE(*CHAR) LEN(256) DCL VAR(&PATH_PTR) TYPE(*PTR) ADDRESS(&PATH 0) DCL VAR(&RES) TYPE(*INT) LEN(4) DCL VAR(&RES_PTR) TYPE(*PTR) ADDRESS(&RES 0) DCL VAR(&TRUE) TYPE(*INT) VALUE(0) DCL VAR(&FALSE) TYPE(*INT) VALUE(-1) DCL VAR(&O_RDONLY) TYPE(*INT) LEN(4) VALUE(1) DCL VAR(&NULL) TYPE(*CHAR) LEN(1) VALUE(X'00') DCL VAR(&TYPE) TYPE(*CHAR) LEN(1) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) RTVJOBA TYPE(&TYPE) CHGVAR VAR(&PATH) VALUE(&DIR *TCAT &NULL) CALLPRC PRC('ナニオト') PARM((&PATH_PTR *BYVAL) + (&O_RDONLY *BYVAL) (*OMIT)) RTNVAL(&RES) IF COND(&RES *EQ &FALSE) THEN(DO) SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) + MSGDTA(' ファイル ' *CAT &DIR *TCAT + ' が見つかりません。 ') MSGTYPE(*ESCAPE) ENDDO RETURN ERROR: RCVMSG MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) SNDMSG: IF COND(&TYPE *EQ '0') THEN(DO) SNDPGMMSG MSG(&MSG) TOMSGQ(*SYSOPR) MSGTYPE(*COMP) ENDDO ELSE CMD(DO) SNDPGMMSG MSG(&MSG) TOMSGQ(*TOPGMQ) MSGTYPE(*DIAG) ENDDO ENDPGM