You must be logged in to use the copy button.
**Free
ctl-opt
copyright('Copyright JAS, Inc. 2024')
nomain debug
option(*srcstmt : *nodebugio ) ccsid(*char:*jobrun)
decedit(*jobrun) alwnull(*usrctl);
//***********************************************************************************
// PURPOSE: This application will check IFS object existence, read, write or execute
// **********************************************************************************
// COMPILE Module: CRTRPGMOD MODULE(*CURLIB/JSIFSOBJEX) SRCFILE(*CURLIB/QRPGLESRC)
// SRCMBR(JSIFSOBJEX) DBGVIEW(*SOURCE) REPLACE(*YES)
// COMPILE SrvPgm: CRTSRVPGM SRVPGM(*CURLIB/JSIFSOBJEX) EXPORT(*ALL) ACTGRP(*CALLER)
// Bindding Dir: ADDBNDDIRE BNDDIR(JASTOOL) OBJ((JSIFSOBJEX))
// **********************************************************************************
/define ifs_Obj_Exists_PR
/copy qProtosrc,JSIFSOBJEX
dcl-proc ifs_Obj_Exists export;
/define ifs_Obj_Exists_PI
/copy qProtosrc,JSIFSOBJEX
dcl-pr Object_Exists int(10) ExtProc('access');
*n Pointer Options(*String:*trim) value; // Path + file
// 0 = File Exist
// 1 = execute or search
// 2 = Write access
// 4 = Read access
*n int(10) value; // Access mode
end-pr;
dcl-s ifs_Obj_Exists ind inz(*off);
dcl-s w_Return int(10) inz;
dcl-s w_Access int(10) inz;
// Main procedure *******************************************************************
if %parms >= %parmnum(p_Access);
w_Access = p_Access;
else; // Default this function to checking of file exists
w_Access = 0;
endIf;
w_Return = Object_Exists(p_Object :w_Access);
Select;
When w_Access = 0 and w_Return = 0; // (File Exists)
ifs_Obj_Exists = *on;
When w_Access = 1 and w_Return = 1; // (Execute or search permission)
ifs_Obj_Exists = *on;
When w_Access = 2 and w_Return = 2; // (Write access permission)
ifs_Obj_Exists = *on;
When w_Access = 4 and w_Return = 4; // (Read access permission)
ifs_Obj_Exists = *on;
Other; // Error or unknown status
ifs_Obj_Exists = *off;
endSl;
return ifs_Obj_Exists;
end-proc;