「2038年問題」の版間の差分

削除された内容 追加された内容
編集の要約なし
4行目:
== 経緯 ==
[[ファイル:Year 2038 problem.gif|right|400px|thumb|上から、2進・十進・問題のある時刻・正しい時刻。([[GIFアニメ]])3時14分7秒を超えたところで負の値となり、時刻に狂いが生じる恐れがある。]]
コンピュータおよび[[プログラム (コンピュータ)|コンピュータプログラム]]における[[時刻]]の表現として「[[UNIX時間]]」《[[協定世界時]]における1970年1月1日0時0分0秒からの経過秒数{{efn|「ただし、うるう秒を無視して現在時刻から逆算した値を使用する」として運用されていることが専らである。}}》を採用しているシステムがある。この起点の時刻は、最初に[[UNIX]]にそのような機能が実装された時にキリがよかった過去の時刻であり、たまたまそう決めたというだけのものに過ぎない{{要出典|date=2021-05}}
 
UNIXおよびUNIX派生の[[オペレーティングシステム]] (OS) における基幹[[ソフトウェアコンポーネント|ソフトウェア部品]]の多くは[[C言語]]で書かれているが、前述の経過秒数を表現する型は、現在の標準では、「[[time_t]]型」である。[[C言語]]の標準である「ISO/IEC 9899:1999」では、<code>time_t</code>型の範囲や精度はいずれも実装定義としている<ref>"The range and precision of times representable in clock_t and time_t are implementation-defined.", ISO/IEC 9899 7.23.1.4</ref>。UNIXの標準([[POSIX]])には「shall be integer or real-floating types.」とのみ記述があり、ビット幅および値の範囲については何らの定めも無い。