今日は、あの日ですよね。そう、1970年1月1日0時0分0秒から秒数を数えると、
1234567890
になる瞬間を迎える日。ちなみに、そのほかのことには、あまり関心を持たないことにしています。
1970年1月1日0時0分0秒ってのは、なんじゃらほい?
という人もいるかもしれませんが、これは、UNIXの内部で時刻を扱うとき、1970年1月1日0時0分0秒を原点として、秒数で数えているからです。
FreeBSDのtime(3)のマニュアル
http://www.freebsd.org/cgi/man.cgi?query=time&apropos=0&sektion=3&manpath=FreeBSD+7.1-RELEASE&format=html
UNIXが誕生した(C言語が誕生した?)瞬間からさかのぼって、ちょうど切れ目のよさそうな日時、ってことで選んだのでしょうかね。
ちなみに、これまで32bit幅の符号付整数で秒数を数えてきたために、「2038年問題」というのが待っています。
ウィキペティア 2038年問題
http://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C
ちなみにMS-DOSは、1980年1月1日から数えてました。
さらに話が脱線しますが、MS-DOSのFATファイルシステムでは、ファイルのタイムスタンプで、秒に使うビット数をケチって5ビット(0~31までしか表現できない)しか用意しなかったので、この5bitの値の2倍の値を秒として使うことにしたため、タイムスタンプの秒は必ず偶数になる、という、すばらしく割り切った仕様がありました。このアバウトさは、米国精神の表れなのではないでしょうか。
FreeBSDの/usr/include/fs/msdosfs/direntry.hにある、
#define DT_2SECONDS_MASK 0x1F /* seconds divided by 2 */
がその5bitの部分です。
☆
UTC(協定世界時)の1970年1月1日0時0分0秒から数えるので、日本の場合、時差を考えると、2009年2月14日午前8時31分30秒に、1234567890を迎えました。
1234567890になる、その瞬間を、ものすごくアナクロな手法で待っていて・・・
あー 1秒ずれた!! もう人生の終わりだー!いや、世界の終わりだー!
0 件のコメント:
コメントを投稿