fldata() behavior
The format of the fldata() function
is as follows:
int fldata(FILE *file, char *filename,
fldata_t
*info);
The fldata() function is used to retrieve information about an open stream. The name of the file is returned in filename and other information is returned in the fldata_t structure, shown in Figure 1. Values specific to this category of I/O are shown in the comment beside the structure element. Additional notes pertaining to this category of I/O follow the figure. For more information on the fldata() function, refer to z/OS XL C/C++ Runtime Library Reference.
Figure 1. fldata()
structure
struct __fileData {
unsigned int __recfmF : 1, /* always off */
__recfmV : 1, /* always off */
__recfmU : 1, /* always on */
__recfmS : 1, /* always off */
__recfmBlk : 1, /* always off */
__recfmASA : 1, /* always off */
__recfmM : 1, /* always off */
__dsorgPO : 1, /* N/A -- always off */
__dsorgPDSmem : 1, /* N/A -- always off */
__dsorgPDSdir : 1, /* N/A -- always off */
__dsorgPS : 1, /* N/A -- always off */
__dsorgConcat : 1, /* N/A -- always off */
__dsorgMem : 1, /* N/A -- always off */
__dsorgHiper : 1, /* N/A -- always off */
__dsorgTemp: 1, /* N/A -- always off */
__dsorgVSAM: 1, /* N/A -- always off */
__dsorgHFS : 1, /* always on */
__openmode : 2, /* one of: */
/* __BINARY */
/* __RECORD */
__modeflag : 4, /* combination of: */
/* __READ */
/* __WRITE */
/* __APPEND */
/* __UPDATE */
__dsorgPDSE: 1, /* N/A -- always off */
__reserve2 : 8; /* */
__device_t __device; /* __HFS */
unsigned long __blksize, /* 0 */
__maxreclen; /* */
unsigned short __vsamtype; /* N/A */
unsigned long __vsamkeylen; /* N/A */
unsigned long __vsamRKP; /* N/A */
char * __dsname; /* */
unsigned int __reserve4; /* */
};
typedef struct __fileData fldata_t;
Notes:
- The filename is the same as specified on the fopen() or freopen() function call.
- The __maxreclen value is 0 for regular I/O (binary). For record I/O the value is lrecl or the default of 1024 when lrecl is not specified.
- The __dsname value is the real POSIX pathname.