OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3010|回复: 1

关于C标准库不安全函数

[复制链接]

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
发表于 2016-1-16 09:48:33 | 显示全部楼层 |阅读模式
本帖最后由 solo 于 2016-1-16 09:52 编辑

缓存溢出问题:
题目挺大,问题很简单,后果挺严重的。
这个问题是我在做项目里偶然遇到的,当时是将一个串口采来的数据(float型)进行格式化显示到屏幕上,正常情况下的数据长度是已知的,但是有一次串口接收来一个异常数据(一个超大的数据,但不超float范围),结果在用sprintf格式化的时候缓存爆掉死机了。。。然后,想着开缓存大点?但是要多大?太大还浪费,得不偿失。或者自己实现个数值显示函数,太麻烦了(不是实现麻烦,甚至已经把UCGUI里的float显示函数抄过来了),自己实现的控制格式繁琐不方便。再或者把sprintf自己实现一遍,汗。。。工程好壮大,不过八度之前自己实现过了。在我即将要拷贝八度的液晶格式格式化函数的时候,偶然发现原来这部分早有人重写过了,也就是现在的标准库函数里的安全版本,但是为毛书上没写过??教科书上真没见过。。。或许是我的错手上明明有好书不看(《PONINTERS ON C1997-07-25出版 入手晚,还没看完),但是人家书上很负责人的写上了这些。


服了,新板论坛编辑bug。。。我放弃了。。。直接pdf吧。
关于C标准库函数不安全版本.pdf (305.61 KB, 下载次数: 271)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

354

主题

1475

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8097
金钱
8097
注册时间
2015-10-15
在线时间
2919 小时
发表于 2016-1-16 14:05:09 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表