


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大家现在一直好奇腾讯的增值业务最高可以充到什么时候。有很多QQ发烧友也测试出结果,甚至不惜血本预付费了几十年的业务。结论是:确实到2038年后数字就不会发生变化,总之是不显示2038之后的日期。同样巧合的是,全球著名杀毒软件卡巴斯基也爆出了一个2038漏洞。具体是:如果将系统时间调整到2038年,卡巴斯基将因为出现程序崩溃而停止工作。然而,事实上,相当多的软件在将系统时间调整到2038年(更具体一点应该是2038年1月19日之后)后,都会出现类似的崩溃而导致应用程序无法工作的现象。MSN、QQ等即时通讯软件,在调整系统时间至2038年1月19日之后,都出现了崩溃。难道这一切是仅仅是一个巧合?Y2038问题也许大家对上个世纪的“千年虫”问题还记忆犹新,“千年虫”问题导致的全球经济损失高达47亿美元,其主要原因是因为当时的计算机用两位数来表示时间,而这种时间表示方式无法识别2000年以后的年份。这种错误会导致计算机系统发生混乱并在全球产生极为不利的严重影响。然而,“千年虫”解决之后,会不会有新的“虫”出现呢?回答是肯定的,“2038年”就是一个新的关卡。也许大家都明白千年虫发作的原理,但是2038又是怎么回事呢?什么是Y2038 BugTime_t是C/C+等编程语言在内部代表/存储日期和时间的一种数据类型。Time_t实际上是一个代表秒数的整数。当初设计的时候,这个4字节的时间格式把1970年1月1日凌晨0时0分0秒作为时间起点,这时的时间值为0。以后所有的时间都是从这个时间开始一秒一秒累积得来的。比方说如果时间已经累积到了919642718这个数值,就是说这时距离1970年1月1日凌晨0时0分0已经过去了919642718秒,换算一下就应该是1999年2月21日星期天16时18分38秒。 这样计算时间的好处在于,把任意两个时间值相减之后,就可以很迅速地得到这两个时间之间相差的秒数,然后你可以利用别的程序把它换算成明白易懂的年月日时分秒的形式。 要是你曾经读过一点儿关于计算机方面的书,你就会知道一个4字节也就是32位的存储空间的最大值是2147483647。请注意!2038年问题的关键也就在这里当时间一秒一秒地跳完2147483647那惊心动魄的最后一秒后,会发生什么?答案是,它就会转为负数也就是说时间无效。那一刻的准确的时间为2038年1月19日03:14:07am(GMT)星期二,之后所有用到这种“标准时间库”的C/C+语言程序都会碰到时间计算上的麻烦。超过此一瞬间,时间将会被掩盖(wrap around)并且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实例而跳回1970年或1901年,错误的计算及动作可能因此产生。比如手机网络工作不正常,卫星脱离轨道,型号较老的电脑软件软硬件无法正常工作等。这就是2038年问题。然而值得注意的是,所有32位电脑系统都用带符号32位整型来存储Time_t的值,也就是说Time_t只能用31位二进制数来表示(第一位用来表示正负号),而其最大值转换为十进制是2147483647,换算成日期和时间刚好是2038年1月19日03:14:07am(GMT),而这一秒过后,Time_t的值将变成-2147483647,代表的是1901年12月13日8:45:52pm,这样32位软硬件系统的日期时间显示就都乱套了。另外,无法接受Time_t为负值的其他功能也将返回错误。 为何担忧也许有人觉得2038年还早着,无需担心这个问题。不幸的是,上世纪60年代的程序开发人员也抱有类似的错误想法,并由此导致了Y2K(千年虫)问题,给全球IT页带来数十亿美元的损失。要知道时间对于许多电脑程序来说都非常重要,操作系统、数据库程序、电子表格软件、实时控制系统等无不涉及到时间。因此我们必须在Y2038 bug爆发前做好充足的准备。尽管到2038年,桌面PC和服务器基本上都将升级到64位甚至128位,但仍会有许多使用中的32位甚至更古老的系统。即使是在32位系统盛行的今天,大多数嵌入式系统仍是8位或16位的,而小型嵌入式系统的数量其实比台式机更多。如何应对Y2038问题和Y2K一样难缠,其中一种解决办法就是用位数更多的数据类型来存储日期和时间。如果使用64位数据类型,time_t最大可以表示大约公元292000000000年,是宇宙估计年龄的20倍,。到那时,位于猎户座旋臂的太阳,已经是黑矮星或暗黑物质,猎户座旋臂已经被重力波震断,银河系大概则已经变成小型类星体了。最起码,看到这篇文章的各位都不会再遇到什么YXXXX问题了。目前并没有针对现有的CPU/操作系统搭配的简单解决方案。直接将POSIX时间更改为64位模式将会破坏对于软件、数据存储以及所有与二进制表示时间相关的部份的二进位兼容性。更改成无符号的32位运算器(integer)则会影响许多与时间改变相关的程序。大部份64位操作系统已经把time_t这个系统变量改为64位宽。不过,其他现有架构的改动仍在进行中,不过预期“应该可以在2038年前完成”。然而,直到2006年,仍然有数以亿计的32位系统在运行中,特别是许多嵌入式系统。相对于一般电脑科技18至24个月的革命性更新,嵌入式系统可能直至使用寿命终结都不会改变。32位time_t的使用亦被编码于文件格式,例如众所周知的ZIP压缩格式。其能存在的时间远比受影响的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车行业智能驾驶技术发展前景预测报告
- 2025年区块链技术应用前景分析报告
- 2025年互联网金融行业全球市场前景研究报告
- 2025年信息技术行业区块链技术应用前景展望研究报告
- 2025年石墨烯行业技术应用与市场前景研究报告
- 2025年网络安全行业量子安全技术应用前景研究报告
- 崇左市2025广西崇左市江州区自然资源局招聘2人笔试历年参考题库附带答案详解
- 宁波市2025年浙江宁波财经学院公开招聘工作人员12名笔试历年参考题库附带答案详解
- 国家事业单位招聘2025国家海洋环境监测中心招聘拟聘事业编制人员(第一批)笔试历年参考题库附带答案详解
- 四川省四川广安市前锋区退役军人事务局招聘见习生笔试历年参考题库附带答案详解
- 用Excel编写公式模板计算医学决定水平处的偏倚
- ISO 14067-2018:温室气体 产品碳足迹 量化要求和指南(中文版)
- 2024年度吉林省高校教师资格证之高等教育心理学考试题库
- 教育综合统计调查制度培训课件2023年修订
- 智能城市垃圾分类处理系统合同
- 乙酰丙酸论文
- 人教版 九年级历史上册 第一、二单元 单元测试卷(2024年秋)
- 偏瘫康复护理个案病例分析
- NBT 10643-2021 风电场用静止无功发生器技术要求与试验方法-PDF解密
- 铁路防雷及接地工程技术规范(TB 10180-2016)
- 胸痛的鉴别诊断和诊断流程课件
评论
0/150
提交评论