32ビット組み込みLinux(ARMLinux)のCコードで時間を処理して、2038年1月19日(03:14:07 UTC)にコードが正しく動作することを保証する適切な方法は何ですか(符号付き32ビットtime_t
オーバーフロー)?私が使用しなければならないシステムでtime_t
が32ビットで署名されているとすれば、どのような代替案がありますか?組み込みLinux(32ビット)用の2038年ソリューション?
グーグルのかなりの量が、実用的な使用の何も明らかにしていません。誰もがそれまでに64ビットOSを使用することを想定しているようですが、これは組み込みシステムには当てはまりません。
私が使用する必要があるシステムでは、はlong
と定義されています。おそらく、64ビット時間のカーネル機能がないということです。 uClibcのバージョンは0.9.29です。
私はこの問題を抱えている唯一の人だとは思っていません。私は車輪を再構築したくありません。
私はこれは良い質問であると同意するが、それはあまりにも広すぎるかもしれない。 LKMLを検索しましたか、リクエストを投稿しましたか? – Olaf
@Olaf:私は、Linuxカーネルの作者が何をしているのかを見てきましたが、それはすべて64ビットシステムを中心に展開しています。私はこの質問が広すぎるとは思わない。率直に言って、私は、とにかくそれをやり遂げるさまざまな方法があるとは思っていません。答えは、おそらく「組み込みシステムのための現在の普遍的な解決策はありません。 –
今から20年以上です –