| Posted in IT&时事 @ 2008/03/17 10:12 by 博爱老头
      据国外媒体报道,日前有业内人士指出,国际互联网将于30年后遭遇“千年虫”式问题,并可能导致网络崩溃。该问题被称为  “2038 Bug”,与2000年的“千年虫”问题类似。到2038年,Unix系统时间所使用的32位整数将溢出。届时,时间可能以负数形式出现。当然,更为关键的是,所有程序都将出现问题。因为程序所能够识别的时间将变为1901年,而不是2038年。尽管“千年虫”问题并未给全球带来太大的灾难,但“2038 Bug”问题仍不容忽视。因为2006年的AOL Web服务器崩溃就是最好的证明。          
      
      什么是Y2038 bug

      Time_t 是C/C++ 等编程语言在内部代表/存储日期和时间的一种数据类型。Time_t实际上是一个代表秒数的整数,当它的值为0时,代表的时间是1970年1月1日12: 00:00;当Time_t=60时,则表示1970年1月1日12:01:00,依此类推。 所有32位电脑系统都用带符号32位整型来存储time_t的值,也就是说t_time只能用31位二进制数来表示(第一位用来表示正负号),而其最大值转换为十进制是2147483647,换算成日期和时间刚好是2038年1月19日03:14:07am(GMT),而这一秒过后,t_time的值将变成-2147483647,代表的是 1901年12月13日8:45:52pm,这样32位软硬件系统的日期时间显示就都乱套了。另外,无法接受time_t为负值的其他功能也将返回错误。举个实际的例子来说,登陆上Yahoo messenger,给好友发个消息,恩没问题,现在把系统时间更改为2038年1月19日03:14:07am,此时如果再发消息Yahoo messenger就将崩溃。


作者:博爱老头@博爱老头的草屋
地址:http://www.icnote.com/Y2038-bug/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最新日志 随机日志 综合排行
  • 用java将本地化语言转换...
  • ThrottleLock ...
  • 新年快乐
  • [music] Sisse...
  • 可口的三文鱼 你不知道的故...
  • [music] 听歌时间-...
  • 平安夜 杂记
  • DOPOD S900 官方...
  • [music]好冷。。音乐...
  • j2ee中session的...
  • “哥伦布”实验舱成功安置到...
  • 也谈java反射机制(Ja...
  • 北京WIFI-CITY实现...
  • 一个比较强的逻辑题目
  • 观看电视剧《战争目光》中[...
  • Ireport-jfree...
  • 嫦娥一号将启用微波探月,探...
  • java numberFo...
  • 中国参建人造太阳 百亿欧元...
  • 推荐两套个人感觉不错的指针...
  • java  msn机器人
  • JSTL详解
  • 终于在fc6下把TL-WN...
  • eXtremeTable的...
  • DES加密、解密字符串算法...
  • IDC sees $49 ...
  • eclipse 安装pyt...
  • 放假早起,听到熟悉经典的音...
  • 测试Issue管理利器JI...
  • Waiting for f...
  • 文章来自: 本站原创
    Tags: , ,
    发表评论
    昵称
    密码 [ 游客无需密码 ]
    电邮
    网址
    打开HTML 打开UBB 打开表情 隐藏 记住我