各位大神,一直想请教个问题。
就是Linux下的时间戳,time_t长度为32位的,是从1970->2038年1月多....
到2038年后,应该怎样处理呢?
现在UI里面设置时间限制到在2038年...2038年很快也就到了
离线
现在 time_t 已经是64bit了,可以用到人类飞出太阳系那时候。
现在用的ARM IC大都还是32bit吧? 如C100/V3s
离线
linux5.10 kernel已经修好了,能熬到2486年,但其他程序就难说了
linux 3.x和4.x的呢 ?
现在有两个项目在用
离线
经测试:虽然我的libc的time_t是64位但内核的time_t是32位,在UTC时间2038-01-19 03:14:07(即本地时间(东8区)2038-01-19 11:14:07)之后,我的应用程序的时间(通过time(NULL)获取)就变回1901-12-14的时间了,busybox里的date命令也一样。
是的,我也测试了,2038-01-19后就出错了。
这个问题不得不考虑了。
离线
最近开始在项目中使用64位时间戳了,客户验收都要设置到2038年以后。
请教下。
您是如何处理的呢?
离线
kernel 5.1版本新增了 time64 syscall
所以你需要升级到 5.1内核,然后用户态需要musl 1.2+ or glibc 2.32+如果你说你的sdk没有kernel5.1 那你只能自己想办法,要么换芯片,要么自己给kernel打补丁
谢谢!
看来是要自己搞了。
离线