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 文档中都找不到任何参考。