Linux Kernel 5.6是怎么解决2038年问题的?

Linux Kernel 5.6是怎么解决2038年问题的?

解决2038问题的是应用吧,内核是64位计数的,即便纳秒为单位,也可以用544年。

time_t用int,是posix规范,如果仅仅用来计算2个时间间隔,到了2038年也不会有问题。

time_start=0x7fffffff;

time_end = 0x8000000;

time_end-time_start=1;

就是用于比较的会出问题。比如if(time_end > time_start),改成if(time_end - time_start>0)就没有问题。

还有用于显示时间的,这个改下把负数当成无符号数即可,应用代码可以不用修改,又能坚持68年。