Format-U permits processing of records that do not conform to the
F- or V- format.
Figure 1 shows how each block is treated
as a record; therefore, any unblocking that is required must be performed
by your program. The optional control character can be used in the
first byte of each record. Because the system does not do length checking
on format-U records, you can design your program to read less than
a complete block into virtual storage. However, for extended format
data sets, since the system writes maximum length records, you must
provide an area at least as large as the block size of the data set.
With BSAM the system attempts to read as much data as indicated by
the current value of the BLKSIZE in the DCB or DCBE. When you are
reading an extended format data set, make sure that the DCB or DCBE
BLKSIZE field value is no more than the length of the area you are
reading into. If you supply a short area because you know the next
block is short, BSAM can overlay storage to the length limit set by
the current BLKSIZE value.
Figure 1. Undefined-Length
Records
For format-U records, you must specify the record length when issuing
the WRITE, PUT, or PUTX macro. No length checking is performed by
the system, so no error indication will be given if the specified
length does not match the buffer size or physical record size.
In update mode, you must issue a GET or READ macro before you issue
a PUTX or WRITE macro to a data set on a direct access storage device.
If you change the record length when issuing the PUTX or WRITE macro,
the record will be padded with zeros or truncated to match the length
of the record received when the GET or READ macro was issued. No error
indication will be given.