[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

OpenVMS Y2K; testing Year 2038 and later?

» close window

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.
 

answer written or last revised on ( 12-FEB-1999 )

» close window