Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 May 1998 10:05:54 +0930
From:      Greg Lehey <grog@lemis.com>
To:        questions@FreeBSD.ORG
Subject:   Re: Year 2038 or 2106?
Message-ID:  <19980519100554.K427@freebie.lemis.com>
In-Reply-To: <19980518210524.A17078@ucb.crimea.ua>; from Ruslan Ermilov on Mon, May 18, 1998 at 09:05:24PM %2B0300
References:  <Pine.BSF.3.95q.980518133734.23393A-100000@federation.addy.com> <19980518210524.A17078@ucb.crimea.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 18 May 1998 at 21:05:24 +0300, Ruslan Ermilov wrote:
> On Mon, May 18, 1998 at 01:47:00PM -0400, Cliff Addy wrote:
>> I'd always read that fbsd was good until at least 2038, as far as
>> date/time computations, since the time is stored as a 32-bit integer of
>> seconds since the Jan 1, 1970.
>>
>> Just on a whim, I decided to check this.  I took 2^32/60/60/24/365 and
>> added that to 1970.  Now, I know I didn't account for leap years, but I
>> still come out to the 2106, not 2038.  I always assumed that an *unsigned*
>> integer was used, if I use a signed integer I get 2^31/60/60/24/365 plus
>> 1970 which *does* yield 2038.
>>
>> So, I guess my questions are:  Is the date an unsigned or signed integer?
>> If signed, why?  If unsigned, why isn't the "date of death" 2106?  Or did
>> I just completely misunderstand or miscalculate?
>>
>> Too much time on my hands ...
>
> # cd /usr/include && grep _BSD_TIME_T_ */*
> machine/ansi.h:#define	_BSD_TIME_T_	long			/* time() */
> sys/types.h:#ifdef	_BSD_TIME_T_
> sys/types.h:typedef	_BSD_TIME_T_	time_t;
> sys/types.h:#undef	_BSD_TIME_T_

In case this is too cryptic: time_t is a signed quantity.  That means
you only have 31 bits to play with.

Greg
--
See complete headers for address and phone numbers
finger grog@lemis.com for PGP public key

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980519100554.K427>