DINFO Function: z/OS

Returns information about a directory.
Category: External Files
z/OS specifics: info-item
See: DINFO Function in SAS Functions and CALL Routines: Reference

Syntax

DINFO(directory-id, info-item)

Required Arguments

directory-id
specifies the identifier that was assigned when the directory was opened, generally by the DOPEN function.
info-item
specifies the information item to be retrieved. DINFO returns a blank if the value of the info-item argument is invalid. The information available varies according to the operating environment. The info-item argument is a character value.

Details

Directories that are opened with the DOPEN function are identified by a directory-id and have a number of associated information items. Use DOPTNAME to determine the names of the available system-dependent directory information items. Use DOPTNUM to determine the number of directory information items available.
The DINFO, DOPTNAME, and DOPTNUM functions support the following directory information items for UNIX File System (UFS) Directories under z/OS:
Directory Information Items for UFS Directories
Item
Item Identifier
Definition
1
Filename
Directory name
2
Access Permission
Read, write, and execute permissions for owner, group, and other
3
Number of Links
Number of links in the directory
4
Owner Name
User ID of the owner
5
Group Name
Name of the owner's access group
6
Filesize
File size
7
Last Modified
Date contents last modified
The DINFO, DOPTNAME, and DOPTNUM functions support the following directory information items for PDSs under z/OS:
Directory Information Items for PDSs
Item
Item Identifier
Definition
1
Dsname
PDS name
2
Unit
Disk type
3
Volume
Volume on which data set resides
4
Disp
Disposition
5
Blksize
Block size
6
Lrecl
Record length
7
Recfm
Record format
The DINFO, DOPTNAME, and DOPTNUM functions support the following directory information items for PDSEs under z/OS:
Directory Information Items for PDSEs
Item
Item Identifier
Definition
1
Dsname
PDSE name
2
Dsntype
Directory type
3
Unit
Disk type
4
Volume
Volume on which data set resides
5
Disp
Disposition
6
Blksize
Block size
7
Lrecl
Record length
8
Recfm
Record format

Examples

Example 1: UNIX File System (UFS) Directory Information

This example generates output that includes information item names and values for a UFS directory:
data _null_;
   length opt $100 optval $100;
   /* Allocate directory */
   rc=FILENAME('mydir', '/u/userid');
   /* Open directory */
   dirid=DOPEN('mydir');
   /* Get number of information items */
   infocnt=DOPTNUM(dirid);
   /* Retrieve information items and */
   /* print to log                   */
   put @1 'Information for a UNIX
      File System Directory:';
   do j=1 to infocnt;
      opt=DOPTNAME(dirid,j);
      optval=DINFO(dirid,upcase(opt));
      put @1 opt @20 optval;
   end;
   /* Close the directory */
   rc=DCLOSE(dirid);
   /* Deallocate the directory */
   rc=FILENAME('mydir');
run;
UFS Directory Information
Information for a UNIX System
   Services Directory:
Directory Name          /u/userid
Access Permission  drwxr-xr-x
Number of Links    17
Owner Name         MYUSER
Group Name         GRP
Last Modified      Apr 26 07:18
Created            Jan 9 2007
NOTE: The DATA statement used 0.09
   CPU seconds and 5203K.

Example 2: PDSE Directory Information

This example generates directory information for a PDSE:
data _null_;
   length opt $100 optval $100;
   /* Allocate directory */
   rc=FILENAME('mydir', 'userid.pdse.src');
   /* Open directory */
   dirid=DOPEN('mydir');
   /* Get number of information items */
   infocnt=DOPTNUM(dirid);
   /* Retrieve information items and */
   /* print to log                   */
   put @1 'Information for a PDSE:';
   do j=1 to infocnt;
      opt=DOPTNAME(dirid,j);
      optval=DINFO(dirid,upcase(opt));
      put @1 opt @20 optval;
   end;
   /* Close the directory */
   rc=DCLOSE(dirid);
   /* Deallocate the directory */
   rc=FILENAME('mydir');
run;
PDSE Directory Information
Information for a PDSE:
Dsname             USERID.PDSE.SRC
Dsntype            PDSE
Unit               3380
Volume             ABC002
Disp               SHR
Blksize            260
Lrecl              254
Recfm              VB
Creation           2005/10/03
NOTE: The DATA statement used 0.08
   CPU seconds and 5203K.

Example 3: PDS Directory Information

This example generates information item names and values for a PDS:
data _null_;
   length opt $100 optval $100;
   /* Allocate directory */
   rc=FILENAME('mydir', 'userid.mail.text');
   /* Open directory */
   dirid=DOPEN('mydir');
   /* Get number of information items */
   infocnt=DOPTNUM(dirid);
   /* Retrieve information items and */
   /* print to log                   */
   put @1 'Information for a PDS:';
   do j=1 to infocnt;
      opt=DOPTNAME(dirid,j);
      optval=DINFO(dirid,upcase(opt));
      put @1 opt @20 optval;
   end;
   /* Close the directory */
   rc=DCLOSE(dirid);
   /* Deallocate the directory */
   rc=FILENAME('mydir');
run;
PDS Directory Information
Information for a PDS:
Dsname             USERID.MAIL.TEXT
Unit               3380
Volume             ABC005
Disp               SHR
Blksize            6160
Lrecl              80
Recfm              FB
Creation           2005/10/03
NOTE: The DATA statement used 0.07
   CPU seconds and 5211K.