您尚未登录。

楼主 # 2022-03-31 17:48:56

dgtg
会员
注册时间: 2017-11-08
已发帖子: 257
积分: 216.5

Linux时间戳到2038年后怎办?

各位大神,一直想请教个问题。
就是Linux下的时间戳,time_t长度为32位的,是从1970->2038年1月多....
到2038年后,应该怎样处理呢?
现在UI里面设置时间限制到在2038年...2038年很快也就到了

离线

楼主 #2 2022-03-31 18:10:59

dgtg
会员
注册时间: 2017-11-08
已发帖子: 257
积分: 216.5

Re: Linux时间戳到2038年后怎办?

cube 说:

现在 time_t 已经是64bit了,可以用到人类飞出太阳系那时候。

现在用的ARM IC大都还是32bit吧? 如C100/V3s

离线

楼主 #5 2022-04-01 10:09:19

dgtg
会员
注册时间: 2017-11-08
已发帖子: 257
积分: 216.5

Re: Linux时间戳到2038年后怎办?

xiang 说:

linux5.10 kernel已经修好了,能熬到2486年,但其他程序就难说了

linux 3.x和4.x的呢 ?
现在有两个项目在用

离线

楼主 #10 2022-04-01 14:28:32

dgtg
会员
注册时间: 2017-11-08
已发帖子: 257
积分: 216.5

Re: Linux时间戳到2038年后怎办?

海石生风 说:

经测试:虽然我的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后就出错了。
这个问题不得不考虑了。

离线

楼主 #11 2022-04-01 14:29:42

dgtg
会员
注册时间: 2017-11-08
已发帖子: 257
积分: 216.5

Re: Linux时间戳到2038年后怎办?

aozima 说:

最近开始在项目中使用64位时间戳了,客户验收都要设置到2038年以后。

请教下。
您是如何处理的呢?

离线

楼主 #16 2022-04-06 09:40:24

dgtg
会员
注册时间: 2017-11-08
已发帖子: 257
积分: 216.5

Re: Linux时间戳到2038年后怎办?

mengxp 说:

kernel 5.1版本新增了 time64 syscall
所以你需要升级到 5.1内核,然后用户态需要musl 1.2+ or glibc 2.32+

如果你说你的sdk没有kernel5.1 那你只能自己想办法,要么换芯片,要么自己给kernel打补丁

谢谢!
看来是要自己搞了。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn