アカウント名:
パスワード:
こういうのを 2038 年問題の 1 つと言ってしまって良いのでしょうか? これは time_t 型の仕様限界による問題ではなくて、単に開発者が time_t 型の仕様を理解していなかっただけの話ですよね?
単に開発者が time_t 型の仕様を理解していなかった
好意的に推測しすぎ。time_t なんて使ってやしないでしょ。おそらく。 int だと思っているから「2倍する」なんて操作をしているの。なんで2倍するのか知らないけど、時刻でなく何か別の用途に使う数値の元ネタにしているのかもね。それでも正の値でないとまずいとかさ。
時刻を内部でどう扱っていても固定サイズで扱っていればいつかはあふれる。それが現実に運用期間中に来ることを考慮しなくて(想像すらできなくて)問題を発生させれば、それはバグ。 西暦年を2桁で表せば2000年問題だし、 エポックからの秒数を9桁の文字列で表せば10億秒問題だし、 1970年1月1日のエポックからの秒数を32ビット符号つき整数で取り扱えば2038年問題。 根は同じだけど、皆して同じバグを作っているからそれぞれ発症時期の名前がついている。 だから、今回のは2004年1月問題かもしれないけど、2038年問題では断じてない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
2038 年問題? (スコア:2, すばらしい洞察)
こういうのを 2038 年問題の 1 つと言ってしまって良いのでしょうか? これは time_t 型の仕様限界による問題ではなくて、単に開発者が time_t 型の仕様を理解していなかっただけの話ですよね?
むらちより/あい/をこめて。
Re:2038 年問題? (スコア:1)
Re:2038 年問題? (スコア:1)
3倍するプログラムはとっくの昔にエラーを起こしたはずです。
それらを「2038年問題」と言ってしまうと、任意の時刻にそれを起こせることになってしまいます。
それって何かおかしいような。
Re:2038 年問題? (スコア:1)
Re:2038 年問題? (スコア:1, 興味深い)
っていう話題じゃないの・・・
多分・・・
Re:2038 年問題? (スコア:0)
Re:2038 年問題? (スコア:0)
IBM がどうあれ、開発者がどうあれ、検証が足らなかったことを隠せないわけだけど。
Re:2038 年問題? (スコア:1, 興味深い)
好意的に推測しすぎ。time_t なんて使ってやしないでしょ。おそらく。
int だと思っているから「2倍する」なんて操作をしているの。なんで2倍するのか知らないけど、時刻でなく何か別の用途に使う数値の元ネタにしているのかもね。それでも正の値でないとまずいとかさ。
時刻を内部でどう扱っていても固定サイズで扱っていればいつかはあふれる。それが現実に運用期間中に来ることを考慮しなくて(想像すらできなくて)問題を発生させれば、それはバグ。
西暦年を2桁で表せば2000年問題だし、 エポックからの秒数を9桁の文字列で表せば10億秒問題だし、 1970年1月1日のエポックからの秒数を32ビット符号つき整数で取り扱えば2038年問題。
根は同じだけど、皆して同じバグを作っているからそれぞれ発症時期の名前がついている。
だから、今回のは2004年1月問題かもしれないけど、2038年問題では断じてない。
Re:2038 年問題? (スコア:1)
Re:2038 年問題? (スコア:1)
Re:2038 年問題? (スコア:1)
ずっと大きな問題だと思う。
予測不可能だからだ。
2000年問題というのは
そういう問題だったのではないのか。
Re:2038 年問題? (スコア:0)
Re:2038 年問題? (スコア:0)
> 作成されたソフトが誤動作する問題と定義するなら、今回のも十分
> 2038年問題であると思うのですが。
しかし、たとえばucharが9bitで桁あふれをすることを考慮しないで
作成されたソフトが誤動作する問題を「uchar問題」とか「9bit問題」
と定義することには、違和感ありまくりですが?
Re:2038 年問題? (スコア:1)
1文字だけキーボードから文字を得るものがあったとして、
バッファを1byte分しか用意していないのに全角文字を入力されたら
「2byte問題」と呼べるような気もします。
「uchar問題」も、ucharで桁あふれすることはまずありえないとの確信があり、
ucharを使うことに何か意味があるなら、問題と呼んでもいいのでは?
1を聞いて0を知れ!
Re:2038 年問題? (スコア:0)
1、2、3、それ以上は「たくさん」。