Slashdot Mirror


Raise a Glass — Time(2) Turns 40 Tonight

ddt writes "Raise your glasses of champagne in a toast at midnight. The time(2) system call turns 40 tonight, and is now officially 'over the hill.' It's been dutifully keeping track of time for clueful operating systems since January 1, 1970." And speaking of time, if you don't have a *nix system handy, or just want a second opinion, an anonymous reader points out this handy way to check just how far it is after local midnight in Unix time. Updated 10:03 GMT by timothy: The Unix-time-in-a-browser link has been replaced by a Rick Astley video; you have been warned.

9 of 114 comments (clear)

  1. Give it 28 years by betterunixthanunix · · Score: 5, Insightful

    When time(2) turns 68, that will be newsworthy.

    --
    Palm trees and 8
    1. Re:Give it 28 years by mysidia · · Score: 5, Informative

      Nope, the maximum value for 32-bit time_t is 2147483647. Increment that by 1, and the time_t value becomes -2147483648.

      Although time_t is a 32-bit value, the 1st bit is the sign bit.

      Jan 18 21:14:07, 2038

      For 64-bit time_t it should be 9223372036854775807. But I don't believe the standard time functions can handle this value...

      While it may be a perfectly valid 64-bit time_t value, if gmtime/localtime/strftime/ctime don't work with the maximum value, it's not a usable value, really

  2. First Post! by therufus · · Score: 5, Informative

    There is a rickroll in article. Beware to click!

    --
    You moved your mouse. Please restart Windows for changes to take effect.
  3. Damn you Slashdot! by nurhussein · · Score: 5, Funny

    Rickrolling is so 2009.

  4. Re:Unix epoch? by MichaelSmith · · Score: 5, Interesting

    Putting it in 1970 is a pain. VMS at least put their zero date in 1858, where it is less likely to conflict with real dates. If course, VMS had 64 put support from the word go. Rebasing time_t would have created a horrible mess. Better to start again with a proper date type.

  5. Re:Unix epoch? by schon · · Score: 5, Funny

    Why didn't we restart it at 2000 amidst the Y2K mess?

    You have a promising career in middle management ahead of you!

  6. This is not true by ucblockhead · · Score: 5, Informative

    Epoch starts at January 1st, 1970, but the system call itself was not around in 1970.

    --
    The cake is a pie
  7. Re:It's not April 1 yet by jamesh · · Score: 5, Funny

    You should install the RickBlockPlus browser addon to prevent this sort of thing happening.

  8. Re:Over the hill? by multi+io · · Score: 5, Interesting
    Decimal jubilees are meaningless. time(2) has passed the top of the hill almost six years ago!

    $ TZ=GMT ruby -e '((0..29).map{|bit| 1<<bit} + (0..30).to_a.reverse.map{|bit| (1<<31) - (1<<bit)}).each{|t| puts "%031b %s" % [t, Time.at(t)]}'
    0000000000000000000000000000001 Thu Jan 01 00:00:01 +0000 1970
    0000000000000000000000000000010 Thu Jan 01 00:00:02 +0000 1970
    0000000000000000000000000000100 Thu Jan 01 00:00:04 +0000 1970
    0000000000000000000000000001000 Thu Jan 01 00:00:08 +0000 1970
    0000000000000000000000000010000 Thu Jan 01 00:00:16 +0000 1970
    0000000000000000000000000100000 Thu Jan 01 00:00:32 +0000 1970
    0000000000000000000000001000000 Thu Jan 01 00:01:04 +0000 1970
    0000000000000000000000010000000 Thu Jan 01 00:02:08 +0000 1970
    0000000000000000000000100000000 Thu Jan 01 00:04:16 +0000 1970
    0000000000000000000001000000000 Thu Jan 01 00:08:32 +0000 1970
    0000000000000000000010000000000 Thu Jan 01 00:17:04 +0000 1970
    0000000000000000000100000000000 Thu Jan 01 00:34:08 +0000 1970
    0000000000000000001000000000000 Thu Jan 01 01:08:16 +0000 1970
    0000000000000000010000000000000 Thu Jan 01 02:16:32 +0000 1970
    0000000000000000100000000000000 Thu Jan 01 04:33:04 +0000 1970
    0000000000000001000000000000000 Thu Jan 01 09:06:08 +0000 1970
    0000000000000010000000000000000 Thu Jan 01 18:12:16 +0000 1970
    0000000000000100000000000000000 Fri Jan 02 12:24:32 +0000 1970
    0000000000001000000000000000000 Sun Jan 04 00:49:04 +0000 1970
    0000000000010000000000000000000 Wed Jan 07 01:38:08 +0000 1970
    0000000000100000000000000000000 Tue Jan 13 03:16:16 +0000 1970
    0000000001000000000000000000000 Sun Jan 25 06:32:32 +0000 1970
    0000000010000000000000000000000 Wed Feb 18 13:05:04 +0000 1970
    0000000100000000000000000000000 Wed Apr 08 02:10:08 +0000 1970
    0000001000000000000000000000000 Tue Jul 14 04:20:16 +0000 1970
    0000010000000000000000000000000 Sun Jan 24 08:40:32 +0000 1971
    0000100000000000000000000000000 Wed Feb 16 17:21:04 +0000 1972
    0001000000000000000000000000000 Wed Apr 03 10:42:08 +0000 1974
    0010000000000000000000000000000 Tue Jul 04 21:24:16 +0000 1978
    0100000000000000000000000000000 Mon Jan 05 18:48:32 +0000 1987
    1000000000000000000000000000000 Sat Jan 10 13:37:04 +0000 2004
    1100000000000000000000000000000 Thu Jan 14 08:25:36 +0000 2021
    1110000000000000000000000000000 Wed Jul 18 05:49:52 +0000 2029
    1111000000000000000000000000000 Tue Oct 18 16:32:00 +0000 2033
    1111100000000000000000000000000 Tue Dec 04 09:53:04 +0000 2035
    1111110000000000000000000000000 Fri Dec 26 18:33:36 +0000 2036
    1111111000000000000000000000000 Wed Jul 08 22:53:52 +0000 2037
    1111111100000000000000000000000 Wed Oct 14 01:04:00 +0000 2037
    1111111110000000000000000000000 Tue Dec 01 14:09:04 +0000 2037
    1111111111000000000000000000000 Fri Dec 25 20:41:36 +0000 2037
    1111111111100000000000000000000 Wed Jan 06 23:57:52 +0000 2038
    1111111111110000000000000000000 Wed Jan 13 01:36:00 +0000 2038
    1111111111111000000000000000000 Sat Jan 16 02:25:04 +0000 2038
    1111111111111100000000000000000 Sun Jan 17 14:49:36 +0000 2038
    1111111111111110000000000000000 Mon Jan 18 09:01:52 +0000 2038
    1111111111111111000000000000000 Mon Jan 18 18:08:00 +0000 2038
    1111111111111111100000000000000 Mon Jan 18 22:41:04 +0000 2038
    1111111111111111110000000000000 Tue Jan 19 00:57:36 +0000 2038
    1111111111111111111000000000000 Tue Jan 19 02:05:52 +0000 2038
    1111111111111111111100000000000 Tue Jan 19 02:40:00 +0000 2038
    1111111111111111111110000000000 Tue Jan 19 02:57:04 +0000 2038
    1111111111111111111111000000000 Tue Jan 19 03:05:36 +0000 2038
    1111111111111111111111100000000 Tue Jan 19 03:09:52 +0000 2038
    1111111111111111111111110000000 Tue Jan 19 03:12:00 +0000 2038
    1111111111111111111111111000000 Tue Jan 19 03:13:04 +0000 2038
    1111111111111111111111111100000 Tue Jan 19 03:13:36 +0000 2038
    1111111111111111111111111110000 Tue Jan 19 03:13:52 +0000 2038
    1111111111111111111111111111000 Tue Jan 19 03:14:0