HP OpenVMS Systemsask the wizard |
The Question is:
Hi. I am running OpenVMS 7.1 on a VAX and 5.7
of the C compiler. I wrote a simple test program
to get the time() and convert to ctime():
#include <stdio>
#include <time>
main ()
{
time_t curr_time;
curr_time = time(0);
printf("%s\n", ctime(&curr_time));
}
If I run this on a system with the system time
set to todays date, it works fine. If I move it
to a system with the system date set to the year
2055, I get back -1 from the time() routine. Am
I just dense here or is there a problem. I am
using no qualifiers on the cc or link commands.
I tried redefining curr_time to be unsigned long int
but that didn't help.
Thanks
The Answer is :
OpenVMS Engineering does not presently recommend testing past Year
2038, please see the OpenVMS information, and specifically see the
OpenVMS information on Year 2038 that is available via the URL:
http://www.digital.com/year2000/
Also please see the Year 2038 information in the OpenVMS FAQ.
One potential cause of the reported problem with testing in the Year
2055 -- a Year 2038 overflow -- was recently found and was removed in
a specific set of routines in the C run-time library. The updated
versions of the routines decc$fix_time(), time(), ftime(), gettimeofday(),
and getclock() will be available in an OpenVMS release after V7.2, and
will likely also be available as an ECO for OpenVMS V7.1 and later, and
possibly for OpenVMS V6.2.
Note that a full evaluation of OpenVMS for any Year 2038 or other later
date-related limitations has not been performed -- if/when such a date
evaluation is performed on OpenVMS, these or other OpenVMS routines may
potentially be found to contain date overflows or unspecified date-related
limitations in the year 2038 or later. There are known and previously
reported date-related limitations in OpenVMS at 1-Jan-10000 00:00:00.00
and at 31-JUL-31086 02:48:05.47.
The ultimate C date format threshold is 7-Feb-2106 at 06:28:15 GMT,
when the C standard unsigned longword date format will overflow. The
signed threshold for the C date format is 19-Jan-2038 03:14:07 GMT.
|