SYSTEM@seivax.pnet (11/14/86)
Gentlefolk-
I have an application that gets the date of a library module as
a quadword (64 bit system time), and I would like to compare this
to a file time obtained using the VAX C stat() call, which returns
(among other things) the mod time as a 32 bit integer. The 64 bit
system time is in 100's of nanoseconds since 1858, while the
32 bit C time is in seconds since 1970.
I have looked through various doc sets to find out how to do quadword
arithmetic. It's too inconvenient to convert all the C times to
64 bit times (I could do it converting to ASCII, editing, and using
SYS$BINTIM, but there are reasons enough not to do that). I'm not
concerned with using FORTRAN if the facilities exist, and if I could
do it in C that would be best. I can always go to MACRO, but I've never
done any in VAX-11 and it doesn't seem in my best interests to learn
it just to do bit-twiddling. Anyone got any ideas, tips, or suggestions?
FYI- The arithmetical operations are:
o Start with 64 bit system time format
o Use SYS$BINTIM to get 64 bit system time for
1-JAN-1970.
o Subtract 1-JAN-1970 from the time
Now I have the time based according to the C standard, so...
o Divide by 10,000,000 to convert from 100's of nanoseconds
to seconds. Voila!
ADthanksVANCE,
Todd Aven
the Softwear Sweatshop
<aven@umdhep.bitnet>
<todd@cincom.umd.edu>Pyoung.pasa@XEROX.COM (11/17/86)
Hi, In VMS PL/I we use LIB$SUBX to do quadword arithmetic on 64-bit time values and LIB$EDIV to convert the quotient to something we can print (e.g. seconds). Phil Young