nginx

ngx_list_t

ngx_list_t是Nginx封装的链表容器,如HTTP的头部就是ngx_list_t来存储的。

typedef struct ngx_list_part_s  struct 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_list_t

ngx_list_t描述整个链表,而ngx_list_part_t只是描述链表的一个元素,可以成为存储数组的链表。就是每个链表元素ngx_list_part_t又是一个数组,拥有连续的内存,依赖ngx_list_t里的size和nalloc来表示数组的容量,又依靠每个ngx_list_part_t成员的nelts来表示数组当前使用来多少容量。事实上ngx_list_part_t数组中的元素才是用户想要存储的。

ngx_list_createj接口用于创建新的链表。

ngx_list_t *ngx_list_create(ngx_pool_t *pool,ngx_uint_t n ,size_t size);

ngx_list_init接口用于初始化一个已有的链表。
ngx_list_push接口用于添加新的元素。

模块编译进nginx

把源代码放入一个目录下,同时在目录下编写一个文件用于通知nginx如何编译本模块,文件名必须命名为config
这样只需要在configure脚本执行时候加入参数-add-module=PATH。
其实在执行完configure脚本后Nginx会生成objs/Makefile和objs/ngx_modules.c文件,完全可以修改这2个文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值