fldata() behavior

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. For more information about the fldata() function, see z/OS XL C/C++ Runtime Library Reference.

Figure 1. fldata() structure
     struct __fileData {
          unsigned int   __recfmF   :    1,            /*                  */
                         __recfmV   :    1,            /*                  */
                         __recfmU   :    1,            /* always on        */
                         __recfmS   :    1,            /*                  */
                         __recfmBlk :    1,            /*                  */
                         __recfmASA :    1,            /*                  */
                         __recfmM   :    1,            /*                  */
                         __dsorgPO  :    1,            /*                  */
                         __dsorgPDSmem : 1,            /*                  */
                         __dsorgPDSdir : 1,            /*                  */
                         __dsorgPS  :    1,            /* always on        */
                         __dsorgConcat : 1,            /*                  */
                         __dsorgMem :    1,            /*                  */
                         __dsorgHiper  : 1,            /*                  */
                         __dsorgTemp:    1,            /*                  */
                         __dsorgVSAM:    1,            /*                  */
                         __dsorgHFS :    1,            /*                  */
                         __openmode :    2,            /* __TEXT           */
                         __modeflag :    4,            /* __APPEND         */
                         __dsorgPDSE:    1,            /*                  */
                         __vsamRLS :     3,            /*                  */
                         __vsamEA  :     1,            /*                  */
                         __reserve2 :    4;            /*                  */
            __device_t     __device;                   /* __MSGRTN         */
            unsigned long  __blksize,                  /* 255              */
                           __maxreclen;                /* 255              */
            union {                                    /*                  */
              struct {                                 /*                  */
                unsigned short __vsam_type;            /*                  */
                unsigned long  __vsam_keylen;          /*                  */
                unsigned long  __vsam_RKP;             /*                  */
              } __vsam;                                /*                  */
              struct {                                 /*                  */
                unsigned char  __disk_access_method;   /*                  */
                unsigned char  __disk_noseek_to_seek;  /*                  */
                long           __disk_reserve[2];      /*                  */
              } __disk;
            } __device_specific;
          char *         __dsname;                     /*                  */
          unsigned int   __reserve4;                   /*                  */
     };
     typedef struct __fileData fldata_t;