But I cannot see how the record length you take for the runtime library is kept by the system
This makes no sense to me -- an LRECL is an LRECL is an LRECL, period. And the system does not "keep" an LRECL -- the record size is either specified by the program, or it is picked up from the file (for an input file, for example). You have complete and total control over the record format, record length, block size, and so forth -- the system does not do anything with these values, and most especially will not change them. If you don't provide one (or more) of them in your program, the system will use the actual file to get the others, but it won't arbitrarily create or modify them.
Section 2.9.1.13 of the
XL C/C++ Programming Guide manual on
fopen() and freopen() parameters lists lrecl as one of the parameters you can provide on the fopen. If you specify lrecl=260 in the fopen, the MAXIMUM record length that can be written will be 260 (if fixed length) or 256 (if variable length).