zOs/REXX/EXUSSDIR

/* rexx */
parse arg dir /* take directory path as argument */
if dir=''  then
    dir = 'A540769.WK'
call syscalls  ON
address syscall
 v_reg 1 dirlist  /* register as a file server */
say 'v_reg retval' retVal errno errnoJr
 v_rpn (dir) vfs vn mnt. st.  /* resolve the directory path name */
say 'v_rpn retval' retVal errno errnoJr
exit
if retval=-1 then
do
say  error resolving path  dir  - error codes:  errno errnojr
return
end
i=1 /* next dir entry to read is 1 */
do forever /* loop reading directory */
 v_readdir vn d.  i /* read starting at next entry */
if retval=-1 then
do
say  error reading directory - error codes:  errno errnojr
leave
end