本文主要是介绍cycle结构体的四级指针详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
cycle有一个四级指针,这个指针也是这个结构体最重要的成员之一.我们来仔细看一下这个四级指针.struct ngx_cycle_s {
void ****conf_ctx;
.....
};
那么他指向何处呢(ngx初始化就是将各种指针串起来)?
我们以event模块为例,讲述一下四级指针完成建立过程,其他核心模块也是一样的,所有模块都由一个conf_ctx共同指向.
1.cycle令conf_ctx指向一个数组,数组存储ngx_max_module 个指针
//开辟一个ngx_max_module大小的数组
cycle->conf_ctx = ngx_pcalloc(pool, ngx_max_module * sizeof(void *));
开始穿针引线,构建四级指针的串链.
2.将conf的ctx指针指向cycle的conf_ctx指针.他们共同操作同一块内存.
conf.ctx = cycle->conf_ctx;
conf.cycle = cycle;
3.对内存块进行赋值:
for (i = 0; ngx_modules[i]; i++) {
if (ngx_modules[i]->type != NGX_CORE_MODULE) {
这篇关于cycle结构体的四级指针详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!