#author("2018-05-02T09:38:05+00:00","default:admin","admin")
#author("2018-05-02T09:40:10+00:00","default:admin","admin")
*2025年問題 [#bc38d942]
-[[IT業界における「2025年問題」とは?:https://www.change-makers.jp/technology/11317]]

*2038年問題 [#ec20176e]
-[[2025年問題の次は2038年問題!コンピュータの暦問題を探る(前編):https://www.change-makers.jp/technology/11350]]
-[[2025年問題の次は2038年問題!コンピュータの暦問題を探る(後編):https://www.change-makers.jp/technology/11351]]

-[[第25回 32ビット環境に迫る「2038年問題」 時計がおかしくなると……:http://www.itmedia.co.jp/enterprise/articles/1607/13/news020.html]]
-[[第26回 32ビット環境に迫る「2038年問題」 検証における5つの疑問:http://www.itmedia.co.jp/enterprise/articles/1607/27/news004.html]]
-[[第27回 32ビット環境に迫る「2038年問題」 検証で分かった事実:http://www.itmedia.co.jp/enterprise/articles/1608/10/news001.html]]

**概要 [#z11fbdaf]
-「西暦2038年問題」とは、Linuxを含むUNIX環境やC/C++言語で記述したプログラムで、協定世界時(UTC)の2038年1月19日3時14分8秒を過ぎると、システムが正しく時刻を認識できなくなることをいう
-UNIXはシステム内部の時刻を、1970年1月1日0時0分0秒(UTC)からの経過秒数で保持している
-経過秒数を表す時刻データには、32ビットの符号付き整数を使っている。先頭の1ビットは正負の符号を表すために使い、2の31乗までの秒数(約21億秒)しか認識できない

**回避策 [#ldc2c0fa]
-UNIX環境の場合は64ビットOSを利用する

-C/C++言語を使ってプログラミングする際には、時刻を取得するときに32ビット以上の整数を使えるようにする
-ただしその場合は、時刻を取得する際に多く使っている「time_t」変数の整数型の定義を変更しなければならない、もしくは別に時刻を取得するプログラムを作る必要がある
-ANSI(米国規格協会)規格のtime_t変数は実装する際に、32ビットの符号付き整数になっていることが一般的なため

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS