![時間が終わるとどうなりますか? [コピー]](https://linux33.com/image/92718/%E6%99%82%E9%96%93%E3%81%8C%E7%B5%82%E3%82%8F%E3%82%8B%E3%81%A8%E3%81%A9%E3%81%86%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
Unixの時間を節約するために符号付き整数値を使用する理由は疑問に思います。明らかに、符号なし整数を使用する方が合理的です。なぜなら、時間は後に行くことができず、負の時間は不可能であるからです。ただし、2038年1月19日にUnix時間が期限切れになります。これは私たちが知っている時間の終わりです。 2,147,483,647から-2,147,483,648に行きます...良いことではありません。
それでは、符号付き整数を使用するのはなぜですか?時間が近づくにつれて修正を実装するのはどれほど難しいでしょうか?
答え1
OpenBSD は最近 32 ビットから 64 ビットの時間値に移動し、時間が経過するまで少しの空き容量を提供します。この修正の難易度は、Unixとそのサポートレベル(および2038年からの時間シフトがどれだけ離れているか)によって異なります。
% date -r $((2**31))
Tue Jan 19 03:14:08 GMT 2038
% date -r $((2**51))
Mon Jun 19 13:54:08 GMT 71358665