- 1
- 0
- 约2.12千字
- 约 2页
- 2026-07-01 发布于北京
- 举报
《002_redissds避免缓冲区溢出以及内存重分配》
c语言原生字符串,strlen,获取字符串长度,遍历,O(n),二进制不安全的,对于二进制数
据来说,、、音频、压缩文件,这种数据都是以一大堆的二进制串来的,里面
肯定会有很多\0空字符,对于c语言来说,的时候,一定要按照\0来截断,肯定不行
的
二进制不安全,原生的c语言字符串没法安全的二进制数据
redis里面的sds,他里面有两个关键的字段,len和free,buf=[]跟c语言没太大差别,
len和free很厉害,free的作用,我们还没讲,len有2个作用,直接len,strlen,O(1),
buf里的数据,不是遍历看到\0就停止
根据len指定字节数量的buf数字的内容,形成一个完整的内容,对于我们来说,redis
里的sds二进制的数据,、音,就算buf里包含了很多\0空字符,根据len来
,不是根据\0来截断,redissds可以实
原创力文档

文档评论(0)