首页
社区
课程
招聘
所以弄明白自己程序的局限有多么重要---兼谈IE6的一个缺陷
发表于: 2006-9-8 23:16 4597

所以弄明白自己程序的局限有多么重要---兼谈IE6的一个缺陷

2006-9-8 23:16
4597
编程时很多人,包括我自己,不太注意标注程序的要求和局限性,结果就很容易出错。

这里是刚刚发现的微软的一个问题。在笑话别人的同时,也请问问我们自己:我写程序的时候,会不会也犯同样低级的错误?

去网上下载一个巨大的文件,比如微软的Vista RC1,网址是

f30K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3c8G2N6$3&6D9L8$3q4V1i4K6u0W2N6$3W2F1k6r3!0%4M7%4k6A6M7%4c8S2i4K6u0W2j5$3!0E0i4K6u0r3M7s2u0W2N6X3W2W2N6#2)9J5c8Y4u0U0x3g2)9J5c8X3g2F1i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3X3g2Z5N6r3@1`.

在“To use your browser”下,选择32或64位的链接。

在下载2.5GB的ISO文件的时候,注意看窗口的标题栏,看到了什么?对了,一个负的百分数,从-1%到负好几百,然后又变成正的好几百,在慢慢递减到接近100%的时候,又变成99%,直到下载结束。至于下面表示进展的progress bar,则完全无用,一会子全满,一会子又是空的,根本就不对。

在XP和2003上都一样,只要你用的是IE6,低版本的就更不用说了。

原因?我估计是程序里用的是带符号的signed INT32,最大值只有0x7FFF FFFF,就是2.2G多一点,所以在下载更大的文件的时候,整数溢出(integer overflow),当然程序里还有一些其它的奇怪的逻辑,我们就不得而知了。

很简单的一件事儿,结果上亿人用的一个软件都会犯这样低级的错误;所以下次你看到我写的程序里有臭虫,就省点儿力气,别拍砖头了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 139
活跃值: (141)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
没法贴图片
2006-9-8 23:17
0
雪    币: 58782
活跃值: (21926)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
最初由 bookworm 发布
没法贴图片


帖图方法见这个,要将图片传上来:
http://bbs.pediy.com/showthread.php?s=&postid=142837
2006-9-8 23:24
0
雪    币: 139
活跃值: (141)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
解决了
2006-9-8 23:30
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
5
还真从没下过这么大的文件
2006-9-9 17:02
0
游客
登录 | 注册 方可回帖
返回