2012-01-31 7 views
3

宿題については、多くのtime_tオブジェクトを扱うプログラムを作成しています。私はそれらのオーバーフローをチェックすることを考えましたが、オーバーフローした場合、私たちはすべて問題に陥るでしょう。エポック> LONG_MAXから何秒後に起こりますか?

これについての計画はありますか?エポック以来の時間が記憶域を超えたらどうなりますか?

+1

私はtime_tを64ビットタイプにしていない主流のCRT実装が残っているのではないかと疑います。 –

+0

http://en.wikipedia.org/wiki/Year_2038_problem –

+0

@ハンス:間違っています。 'time_t'は、私が知っている既存のすべての32ビットマシン(特にLinux/glibcを含む)上の32ビット(' long')です。いずれにしても、すべての32ビットマシンが2038年までに廃止されると期待しているのは現実的だと思います。 –

答えて

9

LONG_MAXは、2^63 - 1です。試してみてください:http://google.comに行き、2^63 seconds in yearsと入力してください。答えを見て、本当に心配する必要があるかどうかを判断してください。

+0

のようになります。うん、それは大きな数字について面白いことだ。私は、「ああ、たぶん私たちがそれについて心配する必要がないような大きな数字...ナー2^63秒はおそらくそれが長年ではない」と思った。私はこの答えに満足しています。 – Ziggy

+1

私はこの問題に関するWikipediaの記事が好きです。符号付き64ビット値を使用すると、12月4日日曜日の15:30:08(292,277,026,596)に新しいラップアラウンド日付が導入されます。少なくとも私にとっては問題にはなりません。 –

+1

私はこれが起こるのを見て周りにいないかもしれないと思うのは悲しいです...今から約3000億年後。だからうんざり。 – Brenden

関連する問題