欢迎光临散文网 会员登陆 & 注册

京峰二进制安全逆向高级班录播课程(反汇编加密解密病毒分析)

2023-03-03 21:09 作者:人鱼の唱晚  | 我要投稿

这种简单的字符串表示,在大多数情况下都能满足要求,但是,它并不能高效地支持长度计算和追加(append)这两种操作:

  • 每次计算字符串长度(strlen(s))的复杂度为 O(N)。

  • 对字符串进行 N 次追加,必定需要对字符串进行 N 次内存重分配(realloc)。

而redis除了要处理c语言字符串之外,还需要处理redis的服务器协议等等。所以,redis实现的sds(简单动态字符串),是二进制安全的。

数据结构的定义如下:

typedef char *sds;      struct sdshdr {      // buf 已占用长度      int len;      // buf 剩余可用长度      int free;      // 实际保存字符串数据的地方      char buf[];   };  


京峰二进制安全逆向高级班录播课程(反汇编加密解密病毒分析)的评论 (共 条)

分享到微博请遵守国家法律