通信用語の基礎知識 全国のICカードこれひとつ 戻る

2038年問題
辞書:電算用語の基礎知識 ソフト用語編 (PYSOFT)
読み:にせんさんじゅうはちねんもんだい
外語:year 2038 problem
品詞:名詞

UNIX系OSや、Cで開発されたアプリケーションの抱える時限爆弾の一つ。

目次
概要

UNIXの日時管理は、1970年1月1日00:00:00を基準(これをThe Epochという)とし、その時間からの経過秒数で扱っている。なお、この経過秒数に閏秒は含まれない。

この経過秒数は32ビットで表現されるが、符号を考慮すると有効桁は31ビットしかない。そのため「1970年1月1日 00:00:00 + 0x7fffffff秒より後が表現できない」という問題を抱える事となった。

即ち、2038(令和20)年1月19日12:14:07(JST)(@176)までしか表現できないことを意味している。

特徴

CやC++は、time_t型を順次64ビット(有効桁63ビット)などに延長するように改良されている。

このため、比較的新しいC/C++処理系では、2038年問題の回避が出来るようになった。但し、古い設計の処理系などには、問題が残されていることになる。

例えば、gzipのように、ファイルフォーマットの要素として32ビットのtime_tを含む場合、同様に2038年問題を生じる。ファイルフォーマットの変更が必要となるが、互換性などから難しい問題となる。このためRFC 1952では0を格納することになっており、実際の実装でもgzip-1.9からはオーバーフロー時には0を格納するようになっている。

リンク
用語の所属
20XX年問題
関連する用語
time_t
C

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic