A SERVICE OF

logo

Programming Release Notes
5.15 C Run-Time Library
5.15.1 C RTL TCP/IP Header File Updates
V8.4
The C RTL ships header les for users to call TCP/IP. C RTL places the headers
into the C RTL header library (DECC$RTLDEF.TLB).
New header les are added, as appropriate for new features in TCP/IP.
SCTP.H
SCTP_UIO.H
These header les provide Stream Control Transmission Protocol (SCTP) support.
For more information on SCTP, see the HP TCP/IP Services for OpenVMS Version
5.7 Release Notes.
5.15.2 Backport Library No Longer Shipped
V8.3
Previously included with the compiler distribution kit was a C RTL backport
object library, which allowed developers on older versions of OpenVMS to use the
latest C RTL functions. This backport object library is no longer being shipped.
5.15.3 Header File <time.h> Changes
V8.3
The following problem is xed. Users who still experience this problem might
have to recompile their application to see the corrected behavior.
The C RTL
<time.h>
header le denes the
struct tm
structure and the functions
gmtime
,
localtime
,
gmtime_r
, and
localtime_r
.
When the calling of one these functions and the application and the C RTL
disagree about the size of
struct tm
, a user application can see data corruption or
an access violation.
The
tm
structure has optional members for BSD extensions:
tm_gmtoff
and
tm_zone
. These are not dened in the ANSI or POSIX specications or, for
compatibility, with older compilations.
The previously mentioned functions have three different denitions in the C RTL:
Local time (no prexes)
UTC time (after OpenVMS V7.0)
_ _UTC_ prexes for no BSD extensions
_ _UTCTZ_ prexes when using the BSD extensions
The _ _UTCTZ_ prexed functions expect to assign only the longer
tm
structure
with the BSD extensions dened.
The problem occurs when the
<time.h>
header le and the C RTL do not agree on
the number of structure members in
struc tm
. For example, the problem occurs
with a C++ compilation using a compile-time macro implying _ANSI_C_SOURCE
(such as _POSIX_C_SOURCE), which maps the listed C RTL functions using
_ _UTC_ prexes. The functions expect the shorter
tm
data structure, but the
user program uses the longer
tm
structure denition. The copy-back of data from
the function return tries to access data not allocated by the C RTL for the
tm
data members. This can result in unpredictable behavior, such as an unintended
memory or access violation.
5–12 Programming Release Notes