- 2007-05-04 (金) 13:45
- デジタル用語
本日はデジタル用語ピックアップ。「2038年問題」です。
コンピュータソフトウェア内部の時間を管理する部分で桁あふれ(オーバーフロー)が起きるために発生する問題。
2000年問題に似ているが、処理系の仕様に関わるため2000年問題よりかなり厄介である。
■概要
ANSICなど標準的なC言語の仕様では、プログラム上で日時を処理するのに、世界標準時1970年1月1日0時0分0秒(EPOCH TIME;日本時間では同日9時0分0秒)からの経過秒数(エポック秒)を使っている(ちなみにこれはUNIXの仕様に由来する)。
この数値を扱うデータ型「time_t型」は「符号付き32bit整数(signed long int)型」として確保しているシステムが多いため、符号部を抜いた31bitで表現できる最大の数値である2147483647(日時に換算すると2038年1月19日3時14分8秒)を超えると桁あふれを起こしてしまい、時刻の判定に誤動作を起こす可能性がある。
この問題は一般的なC言語のほか、同じエポック秒を利用し、これを扱うデータ型が符号付き32bit整数である他のプログラミング言語で作られたプログラムでも発生しうる。
対処法としては「time_t型」を「符号付き64bit整数型」などにしてしまうという手がある。
※はてなダイヤリーより引用
似たような用語で、数年前の「2000年問題」がありましたが、こちらの方は問題がもう少し複雑そうです。もっとも、西暦2038年というとあと30年以上も先のことではありますが……。
|
posted with amazlet on 07.06.14 大島 邦夫 堀本 勝久 おすすめ度の平均:
|
- 2007-05-04 (金) 13:45
- デジタル用語
コメント:0
- 次のエントリ: Adobe Flashの対抗馬:Microsoft Silverlight
- 前のエントリ: Windows XP の動作を軽快にするTIPSまとめ
![2007-'08年版 [最新] パソコン用語事典](http://g-ec2.images-amazon.com/images/I/31biy4P-OYL.jpg)

