システム/usr/share/zoneinfo
データベースはかなり頻繁に更新されるので、非常に長時間実行されるC ++プログラムで動的にロード(およびリロード)できるようにしたいと思います。
これで、標準ライブラリがこのデータベースを使用することがわかりましたが、動的に再ロードできるとは思えません(または、少なくともGoogleでは何も見つかりませんでした)。
これを行うために使用できるCまたはC++ライブラリまたはコードはありますか?
私はアホです。zoneinfoデータベースを提供するIANAは、それを操作するためのライブラリも提供します。おかしなことに、postgresqlのソースコードを読んでこれを発見しました。
これで十分かどうかはわかりませんが、パブリックドメインのライセンスが付与されているため、少なくともコードに組み込んで、必要に応じて曲げることができます。
localtime
et alは、によって設定されたタイムゾーン変換情報を使用するため、通常、ある値に設定し、呼び出し、元に戻し、再度呼び出すことで、tzset
その情報を再ロードできます。これはglibcで機能しますが、おそらく他のプラットフォームで確認する必要があります。TZ
tzset
それ以外の場合は、他の非Posix APIを使用してzoneinfoデータベースにアクセスしているため、ライブラリがデータをリロードするための機能を確認する必要があります。