The contents of FCB fields for file attributes may differ from the values specified for the corresponding operands in the FILE macro. This is true, for example, for KEYPOS, KEYLEN, PAD and BLKSIZE. If “n” is the value in field KEYPOS and “m” is the value of KEYLEN in the catalog entry or in the TFT or the FCB macro, the following applies to files which are open:
field KEYLEN in the P1 FCB contains m-1
field KEYPOS in the P1 FCB contains, for RECFORM=F, (n+4)-1 = n+3
The PAD value is taken into account only when a file is created sequentially by means of the PUT macro. The macros INSRT and STORE use all the available space of each block, but block splitting may occur during creation of the file.
The contents of field BLKSIZE in the P1 FCB may also differ from the value of the BLKSIZE operand in the FILE or FCB macro or the catalog entry: except for input files, the BLKSIZE is recalculated, taking the PAD value into account (BLKSIZE minus PAD) and placed in FCB field BLKSIZE.
Example
Catalog entry: BLKSIZE=(STD,3); PAD=15 (default value).
The contents of BLKSIZE in the TU-FCB are calculated as follows: (3 * 2048) * (1.0 – 0.15); during file processing, the field BLKSIZE contains the value X'1467'.