~によるとPOSIX.1-2008規格、time()
一部のシステムでは、システムコールとして実装されます。
どのシステムでこれが起こりますか?
私が懸念しているのは、time()
2038年1月17日以降のすべての日付がシステムコールが行われたときに大きな負の数を返すことによって、一部のプログラムが中断される可能性があることです。
答え1
これはPOSIX 2008では必要ではなく、32ビット整数を予約するシステムでのみ一般的な慣行ではありません。time_t
OpenBSDは2013年に64ビットに移行します。。しかし!個々のアプリケーションを監査して32ビット時代を使用していることを確認する必要があるため、オペレーティングシステムでより大きな整数型を使用する必要がありますが、十分ではありません。
Johan Myréenが指摘したように、time
システムコールや他のものは2038年の問題とは関係ありません。サポートされているシステム(およびそのシステムで実行されているアプリケーション)は変更されますが、サポートされていないシステム(およびアプリケーション)は変更されません。