4

システム/usr/share/zoneinfoデータベースはかなり頻繁に更新されるので、非常に長時間実行されるC ++プログラムで動的にロード(およびリロード)できるようにしたいと思います。

これで、標準ライブラリがこのデータベースを使用することがわかりましたが、動的に再ロードできるとは思えません(または、少なくともGoogleでは何も見つかりませんでした)。

これを行うために使用できるCまたはC++ライブラリまたはコードはありますか?

4

2 に答える 2

3

私はアホです。zoneinfoデータベースを提供するIANAは、それを操作するためのライブラリも提供します。おかしなことに、postgresqlのソースコードを読んでこれを発見しました。

これで十分かどうかはわかりませんが、パブリックドメインのライセンスが付与されているため、少なくともコードに組み込んで、必要に応じて曲げることができます。

于 2012-08-28T17:08:07.883 に答える
1

localtimeet alは、によって設定されたタイムゾーン変換情報を使用するため、通常、ある値に設定し、呼び出し、元に戻し、再度呼び出すことで、tzsetその情報を再ロードできます。これはglibcで機能しますが、おそらく他のプラットフォームで確認する必要があります。TZtzset

それ以外の場合は、他の非Posix APIを使用してzoneinfoデータベースにアクセスしているため、ライブラリがデータをリロードするための機能を確認する必要があります。

于 2012-08-28T11:10:51.330 に答える