如何在32位嵌入式Linux(ARMLinux)的C代码中处理时间,以确保代码在2038年1月19日03:14:07 UTC之后(即有符号32位time_t
溢出时)仍能正常工作?考虑到系统上的time_t
是有符号32位的,那么有哪些替代方案呢?
大量的搜索未发现实用的解决方法。每个人似乎都假定到那时我们都将使用64位操作系统,但显然嵌入式系统不是这样。
在我需要使用的系统上,__kernel_time_t
被定义为long
。这可能意味着没有内核支持64位时间。uClibc的版本为0.9.29。
我不相信我是唯一面临此问题的人,也不想重新发明轮子。