Nginx模块-简单的HTTP模块

一、nginx封装的数据结构
1、有符号和无符号数:
typedef intptr_t ngx_int_t;
typedef uintptr_t ngx_uint_t;

2、字符串类型:
typedef struct {
    size_t len;
    u_char *data;
}
字符串并不以'\0'结尾,不能当做普通字符串来对待,当做普通字符串会导致内存泄露。

3、链表ngx_list_t:
typedef struct ngx_list_part_s ngx_list_part_t;
struct ngx_list_part_s { //代表链表的单个元素
    void* elts;//指向数组的起始地址
    ngx_uint_t nelts;//表示数组中已经存储了多少个元素
    ngx_list_part_t* next;//下一个链表元素的地址
};
typedef struct {
    ngx_list_part_t* last;//最后一个数组元素
    ngx_list_part_t part;//首个数组元素
    size_t size;//限制每个数组元素的大小
    ngx_uint_t nalloc;//每个ngx_list_part_t数组最多可以存储多少个数据
    ngx_pool_t* pool;//链表管理内存分配的内存池对象
}ngx_list_t;
二、nginx链表

ngx_list_t中数据都是由ngx_pool_t类型的内存池分配的,他们通常都是连续的内存。

ngx_list_t* ngx_list_create(ngx_pool_t* pool, ngx_uint_t n, size_t size);//用于创建一个链表
ngx_list_init(ngx_list_t* list, ngx_pool_t* pool, ngx_uint_t n, size_t size);//用于初始化一个已有链表
void* ngx_list_push(ngx_list_t *list);//用于向链表中添加新元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值