2038年に思いを馳せる

研究のプログラミングにC++を使い始めた。オブジェクト指向で開発効率が上がっているかどうかはわからないけどとりあずクラスとか使ってる。STLは覚えると便利なことがわかった。それとは別にバイト先で使うウェブアプリケーションをPHP+MySQLで書いている。セッションを使った認証のやり方を覚えた。

プログラムで日付を扱うときにちょっと気になることがある。CとかPHPとかで時間を扱うときにUNIXタイムスタンプというものを使うのだが,これはグリニッジ標準時で1970年1月1日 0時0分0秒を基準に,そこからの経過秒数で時間を表している。実はこのタイムスタンプの値には仕様上の限界があって,32ビット符号付き整数の最大値までしか扱えない。すなわち1970年1月1日 0時0分0秒の2147483647秒後までしか正しく時間を表すことができない。時刻に直すと2038年1月19日 3時14分7秒。これを超えるとプログラムはバグってしまう。これを2038年問題というらしい。

まあ,個人で書いてるプログラムだから32年後のことなんて気にせずに使ってるわけだが。2000年問題も記憶に新しいし,世の中のシステムはちゃんと対応してくれるのだろうか。あと,2038年にならなくてもこの問題が顕在化する場合もあるようで,実際にATMのシステム障害が起きているようだ。
コンピュータの“西暦2038年問題”発生、早くも日本を揺るがす

3 comments.

  1. はじめてtrackbackてのやってみたよ。つかblog復活。

  2. うわぁ、やっていただいてくれてるとは。
    完成の暁には飯行きましょう。パスタ奢ります。
    何故限定かは内緒な方向で。

    しかし、2038年?
    コンピュータ業界には時間問題がつきまとうんですねえ。
    次の規格では千年時計くらいの勢いあればいいんですけど。
    このままなら地球自体が過去になってるだろうですし。
    あ、この問題のバージョンアップ方法でも編み出せばゲイツさんのお零れにあずかれそうですな。

  3. >kooooooooooomatsu
    初トラックバックだよ。
    復活早いね。つか閉鎖するな。
    >8さん
    なぜ限定か気になりますがパスタ大好きなので楽しみです。
    がんばります。

Post a comment.