预前思考🤔

  1. 结构定义,API操作
  2. 优缺点,适用场景
  3. 对比,与C字符串、C++中String、Redis中sds的比较

概要

实现文件:src/core/ngx_string.h|c

名称:ngx_str_t

数据结构图

nginx_string_t.png

定义

使用len明确指明字符串长度,而非用'\0'来标识字符串结尾。

  1. typedef struct {
  2. size_t len; // 字符串长度
  3. u_char *data; // 指针地址
  4. } ngx_str_t;

操作

操作函数的主体参数还是C字符串,而非ngx_string_t。

操作 代码 备注
初始化
赋值
求长size ngx_strnlen