LINUX下的Y2K问题

再见
  这个话题以前讨论过,这里再讨论一下,免得2000年到来时,全
世界都灰飞烟灭了:-).Linux(以及Unix)系统通过计算从1970年1月1
日开始到当前的秒数,来获取当前日期信息。假设你看到Linux系统
的日期显示是一个字符串:"Fri Dec 3 08:50:17 PST 1999",其
实这个字符串是通过将秒计数器的值送到一个函数运算产生的。所
以,对于秒计数器来说,2000年1月1日与其他日期没有实质上的差
别,其它将日期作为字符串来显示的各种转换程序也一样。
  因此,如果你的Linux系统在2000年1月1日崩溃,那很可能是因
为其它运行非Linux系统的电子设备导致。不过,如果你是一位非常
具有前瞻性的人,不妨在2038年之前,检查一下你的操作系统源码,
如果秒计数器还是一个32位整数型变量,2038年之后将会导致类似Y2K
问题。
  如果你对Linux和Unix使用这种非标准的格式感到不解,考虑一
下,当你的程序要比较不同的日期时,对32位整数值作加减运算,远
远比你要考虑诸如月份、年份的分析比较要容易得多。
  以上关于Linux的讨论,并不能保证你在某些应用程序不会产生
问题,尤其是那些原来不是在Linux平台上编写的程序,如果应用程
序(比如一个数据库)使用自己的日期格式,而不像Linux用一个32
位整数值,那将有可能导致Y2K问题。
  加入你想做一些测试,找出那些显示2位数字年份的应用程序,
这些程序最有可能发现Y2K问题。需要说明一点,有些使用2位数字年
份的数据库,会自动将低于某一个数值的年份当成下一个世纪的年份
。比如,年份小于80的被当成21世纪的年份,而年份大于80的则被当
作20世纪。
作者:NetIsCpu?
摘自网易
原发信人: deadfire (葡萄), 信区: FreeOS

再见就是不见的意思.