The encoding scheme used by
ftell() in non-
BYTESEEK mode in the
z/OS® XL C/C++ RTL
is different from that used in the
XL C/C++ runtime library prior to C/370™ Release
2.2 and Language Environment® prior to release
1.3.
- If your code obtains ftell() values and passes them to fseek(),
the change to the encoding scheme should not affect your application.
On the other hand, your application may not work if you have saved
encoded ftell() values in a file and your application reads in these
encoded values to pass to fseek(). For non-record I/O and non-blocked
I/O files, you can set the environment variable _EDC_COMPAT with
the ftell() encoding set to tell z/OS XL C/C++ that you have old ftell() values.
Files opened for record I/O or blocked I/O do not support old ftell() values
saved across the program boundary.
- In previous versions, the fseek() support for the ftell() encoding
scheme inadvertently supported seeking from SEEK_SET with a byte
offset up to 32K. This is no longer be supported. Users of this
support must change to BYTESEEK mode. You can do this without changing
your source code; just use the _EDC_BYTE_SEEK environment variable.