Re: End of Time, *nix Time
"Jon \"maddog\" Hall via Ale" <[email protected]> Tue, 28 Apr 2026 08:25:44 -0400
| Newsgroups | gmane.org.user-groups.ale |
|---|---|
| Message-ID | <CAM7HF_09tCQWTyCJL9Yi2uCpLX1668cRBWHB9FRFqp-ZZQnTfQ@mail.gmail.com> |
--===============2148827883034370461== Content-Type: multipart/alternative; boundary="000000000000386ca806508455ea" --000000000000386ca806508455ea Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Quite frankly at the age of 75, diabetic, three heart attacks and only 26% of my heart capacity left I do not think I have to worry about this. But it was fun reading about it anyway.=F0=9F=98=9C On Sat, Apr 25, 2026, 23:54 Bob Toxen via Ale <[email protected]> wrote: > I've just uploaded the new and improved code to my web site so please > download again and email just me ([email protected]) if you > get any more compiler warnings or strange results to be addressed. > > This new version improves the messages to be less cryptinc but the > program does assume you know something about how time is handled in > *nix. The short answer is that if you have the old signed 32-bit > time_t type then the largest year you will see will be 2038 in > output of the form "Day-of-week Month Day ##:##:## Year". > > If you get a reference from Hitchhiker's Guide to the Galaxy then > you have the new 64-bit time_t type and you should be good for the > next two billion years. > > Please send me comments to address. > > Bob > > On Sat, Apr 25, 2026 at 02:38:03PM -0400, Jeff Lightner via Ale wrote: > > This made me think of my annoyance at logs for some apps that did > > epoch timestamps. More than once I wrote a script to calculate human > > readable time as it displayed lines from such logs. I???m sure there > > are some who can eyeball epoch and convert it mentally to star date and > > other clock/calendar systems but I wasn???t one of them. > Which also > > made me think of the fact that some logs are in UTC rather than local > > time zone time. At least I could do that conversion in my head. > > > Back when we tested for Y2K bugs many of us who were UNIX admins > > also tested for future dates against the 32 bit limit and other factors= . > > I often thought it odd that most UNIX platforms already did 64 bit > whereas > > many Linux distros didn???t even if they were on a 64 bit processor. > > > From: Ale <[email protected]> On Behalf Of Ron via Ale > > Sent: Saturday, April 25, 2026 1:29 PM > > To: [email protected] > > Cc: Ron <[email protected]> > > Subject: Re: [ale] End of Time, *nix Time > > > > > > > > Bob Toxen via Ale wrote on 2026-04-24 19:43: > > > > # Download this program: > > wget http://verysecurelinux.com/xtime.c > > # Compile: > > make xtime > > # Run: > > ./xtime -q > > > > I downloaded an compiled this. > > > > Lots of warnings when running `make`, but it compiled. > > > > What am I to make of the output? I can make no sense of it. > > > > > > > > $ ./xtime -q > > Copyright (c) Bob Toxen 2026. All rights reserved. > > > > This program will analyze your *nix for the well-known bug if the > > seconds since 01/01/1970 exceeds a signed 32 bit (4-byte) integer. > > If it outputs abnormal output for years beyond 2038 then your computer > > will fail at that time, about 12 years from now. > > > > Many *nix systems were fixed decades ago so that this variable became > > an unsigned 32-bit int, which can keep time until 2106. > > More recently most systems went to a signed 64-bit int. > > > > Note that most Unix and Linux distributions corrected the time > > problem by approximately 2014 to work until 2106 (using an unsigned > > 32-bit number) or well beyond if using a 64-bit number but maybe the co= de > > will fail before the largest 64-bit signed (292,271,022,989 years) > > or unsigned number is exceeded. > > > > > > If it is not fixed in your version, well, good luck. > > > > sizeof char=3D1, sizeof short=3D2, sizeof int=3D4, sizeof long=3D8, siz= eof long > long=3D8, sizeof time_t=3D8 > > > > Current years and seconds since the epoch: 56 1777137911 > > seconds/year:31536000, seconds/year including leap year:31557600, > delta seconds:21600, delta hours:6 > > > > Biggest signed 4-byte long: years inc=3D 0, years in the > future=3D 11, Mon Jan 18 19:14:07 2038 > > Biggest unsigned 4-byte long: years inc=3D 0, years in the > future=3D 79, Sat Feb 6 22:28:15 2106 > > > > Time: years inc=3D 1, years in the future=3D 2147437525, W= ed > Jun 12 15:25:11 2147483647 > > > > Welcome to the Restaurant at the end of the universe. Hello, your > Majesty. > > > > Biggest signed 8-byte long: years inc=3D 0, years in the > future=3D 292271022988, > > ERROR: Invalid seconds since Epoch in localtime > > Error code: Value too large for defined data type > > > > Biggest unsigned 8-byte long: years inc=3D 0, years in the > future=3D -56, Wed Dec 31 15:59:59 1969 > > > > > > > > > _______________________________________________ > > Ale mailing list > > [email protected] > > https://mail.ale.org/mailman/listinfo/ale > > See JOBS, ANNOUNCE and SCHOOLS lists at > > http://mail.ale.org/mailman/listinfo > > _______________________________________________ > Ale mailing list > [email protected] > https://mail.ale.org/mailman/listinfo/ale > See JOBS, ANNOUNCE and SCHOOLS lists at > http://mail.ale.org/mailman/listinfo > --000000000000386ca806508455ea Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"auto">Quite frankly at the age of 75, diabetic,=C2=A0 three hea= rt attacks and only 26% of my heart capacity left I do not think I have to = worry about this.<div dir=3D"auto"><br></div><div dir=3D"auto">But it was f= un reading about it anyway.=F0=9F=98=9C</div></div><br><div class=3D"gmail_= quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, = Apr 25, 2026, 23:54 Bob Toxen via Ale <<a href=3D"mailto:[email protected]">al= [email protected]</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style= =3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I've= just uploaded the new and improved code to my web site so please<br> download again and email just me ([email protected]) if you<br> get any more compiler warnings or strange results to be addressed.<br> <br> This new version improves the messages to be less cryptinc but the<br> program does assume you know something about how time is handled in<br> *nix.=C2=A0 The short answer is that if you have the old signed 32-bit<br> time_t type then the largest year you will see will be 2038 in<br> output of the form "Day-of-week Month Day ##:##:## Year".<br> <br> If you get a reference from Hitchhiker's Guide to the Galaxy then<br> you have the new 64-bit time_t type and you should be good for the<br> next two billion years.<br> <br> Please send me comments to address.<br> <br> Bob<br> <br> On Sat, Apr 25, 2026 at 02:38:03PM -0400, Jeff Lightner via Ale wrote:<br> > This made me think of my annoyance at logs for some apps that did<br> > epoch timestamps.=C2=A0 More than once I wrote a script to calculate h= uman<br> > readable time as it displayed lines from such logs.=C2=A0 I???m sure t= here<br> > are some who can eyeball epoch and convert it mentally to star date an= d<br> > other clock/calendar systems but I wasn???t one of them.=C2=A0 > Wh= ich also<br> > made me think of the fact that some logs are in UTC rather than local<= br> > time zone time.=C2=A0 At least I could do that conversion in my head.<= br> <br> > Back when we tested for Y2K bugs many of us who were UNIX admins<br> > also tested for future dates against the 32 bit limit and other factor= s.<br> > I often thought it odd that most UNIX platforms already did 64 bit whe= reas<br> > many Linux distros didn???t even if they were on a 64 bit processor.<b= r> <br> > From: Ale <<a href=3D"mailto:[email protected]" target=3D"_blank"= rel=3D"noreferrer">[email protected]</a>> On Behalf Of Ron via Ale<br= > > Sent: Saturday, April 25, 2026 1:29 PM<br> > To: <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferrer= ">[email protected]</a><br> > Cc: Ron <<a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"n= oreferrer">[email protected]</a>><br> > Subject: Re: [ale] End of Time, *nix Time<br> > <br> >=C2=A0 <br> > <br> > Bob Toxen via Ale wrote on 2026-04-24 19:43:<br> > <br> >=C2=A0 =C2=A0# Download this program:<br> >=C2=A0 =C2=A0wget <a href=3D"http://verysecurelinux.com/xtime.c" rel=3D= "noreferrer noreferrer" target=3D"_blank">http://verysecurelinux.com/xtime.= c</a><br> >=C2=A0 =C2=A0# Compile:<br> >=C2=A0 =C2=A0make xtime<br> >=C2=A0 =C2=A0# Run:<br> >=C2=A0 =C2=A0./xtime -q<br> > <br> > I downloaded an compiled this.<br> > <br> > Lots of warnings when running `make`, but it compiled.<br> > <br> > What am I to make of the output? I can make no sense of it.<br> > <br> >=C2=A0 <br> > <br> > $ ./xtime -q<br> > Copyright (c) Bob Toxen 2026.=C2=A0 All rights reserved.<br> > <br> > This program will analyze your *nix for the well-known bug if the<br> > seconds since 01/01/1970 exceeds a signed 32 bit (4-byte) integer.<br> > If it outputs abnormal output for years beyond 2038 then your computer= <br> > will fail at that time, about 12 years from now.<br> > <br> > Many *nix systems were fixed decades ago so that this variable became<= br> > an unsigned 32-bit int, which can keep time until 2106.<br> > More recently most systems went to a signed 64-bit int.<br> > <br> > Note that most Unix and Linux distributions corrected the time<br> > problem by approximately 2014 to work until 2106 (using an unsigned<br= > > 32-bit number) or well beyond if using a 64-bit number but maybe the c= ode<br> > will fail before the largest 64-bit signed (292,271,022,989 years)<br> > or unsigned number is exceeded.<br> > <br> > <br> > If it is not fixed in your version, well, good luck.<br> > <br> > sizeof char=3D1, sizeof short=3D2, sizeof int=3D4, sizeof long=3D8, si= zeof long long=3D8, sizeof time_t=3D8<br> > <br> > Current years and seconds since the epoch: 56 1777137911<br> >=C2=A0 =C2=A0seconds/year:31536000, seconds/year including leap year:31= 557600, delta seconds:21600, delta hours:6<br> > <br> > Biggest=C2=A0 =C2=A0signed 4-byte long: years inc=3D=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 0, years in the future=3D=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A011, Mon Jan 18 19:14:07 2038<br> > Biggest unsigned 4-byte long: years inc=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 0, years in the future=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A079, Sat Feb=C2=A0 6 22:28:15 2106<br> > <br> > Time: years inc=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1, years i= n the future=3D=C2=A0 =C2=A02147437525, Wed Jun 12 15:25:11 2147483647<br> > <br> > Welcome to the Restaurant at the end of the universe.=C2=A0 Hello, you= r Majesty.<br> > <br> > Biggest=C2=A0 =C2=A0signed 8-byte long: years inc=3D=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 0, years in the future=3D 292271022988,<br> > ERROR: Invalid seconds since Epoch in localtime<br> > Error code: Value too large for defined data type<br> > <br> > Biggest unsigned 8-byte long: years inc=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 0, years in the future=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -= 56, Wed Dec 31 15:59:59 1969<br> > <br> >=C2=A0 <br> > <br> <br> > _______________________________________________<br> > Ale mailing list<br> > <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferrer">Al= [email protected]</a><br> > <a href=3D"https://mail.ale.org/mailman/listinfo/ale" rel=3D"noreferre= r noreferrer" target=3D"_blank">https://mail.ale.org/mailman/listinfo/ale</= a><br> > See JOBS, ANNOUNCE and SCHOOLS lists at<br> > <a href=3D"http://mail.ale.org/mailman/listinfo" rel=3D"noreferrer nor= eferrer" target=3D"_blank">http://mail.ale.org/mailman/listinfo</a><br> <br> _______________________________________________<br> Ale mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank" rel=3D"noreferrer">Ale@ale= .org</a><br> <a href=3D"https://mail.ale.org/mailman/listinfo/ale" rel=3D"noreferrer nor= eferrer" target=3D"_blank">https://mail.ale.org/mailman/listinfo/ale</a><br= > See JOBS, ANNOUNCE and SCHOOLS lists at<br> <a href=3D"http://mail.ale.org/mailman/listinfo" rel=3D"noreferrer noreferr= er" target=3D"_blank">http://mail.ale.org/mailman/listinfo</a><br> </blockquote></div> --000000000000386ca806508455ea-- --===============2148827883034370461== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Ale mailing list [email protected] https://mail.ale.org/mailman/listinfo/ale See JOBS, ANNOUNCE and SCHOOLS lists at http://mail.ale.org/mailman/listinfo --===============2148827883034370461==--