time(NULL)
Androidでの使用に関する既知の問題はありますか?
次のコードを実行してみました。
int32_t now1 = time(NULL);
int64_t now1_6 = (int64_t)time(NULL);
int32_t nt = (time_t)-1;
int64_t nt6 = (int64_t)-1;
次に、次の形式を使用して結果をログに記録します。
"Now1 is %d. Now1_6 is %lld. NT is %d. NT6 is %lld.\n", now1, now1_6, nt, nt6
これは私が得た出力です:
01-05 19:10:15.354: I/SMOS(11738): Now1 is 1533390320. Now1_6 is 6585861276402981128. NT is 0. NT6 is 283493768396.
異なるループ反復で同じ時間値を取得するなど、他の問題もありました。
これらの問題は、Android 4.0.3 (API 15) を実行している仮想デバイスと物理デバイスの両方で発生しました。どちらも正しい時刻で構成されていました。上記の出力は、物理デバイスからのものです。
Bionic のこの特定の POSIX 関数に問題があると思われますが、オンラインでも Bionic ドキュメントでも、そのような参照は見つかりませんでした。