日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

【Nginx】基本数据结构

發(fā)布時間:2025/6/17 Nginx 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Nginx】基本数据结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

整型的封裝

typedef intptr_t ngx_int _t;//有符號整型

typedef uintptr_t ngx_uint_t;//無符號整型

字符串的封裝

typedef struct {size_t len;u_char *data; }ngx_str_t;

鏈表容器的封裝

typedef struct ngx_list_part_s ngx_list_part_t; //鏈表結(jié)點 struct ngx_list_part_s {void *elts;//數(shù)組的起始地址ngx_uint_t nelts;//數(shù)組中已經(jīng)使用的元素個數(shù),必須小于nallocngx_list_part_t *next;// };typedef struct {ngx_list_part_t *last;ngx_list_part_t part;size_t size;//ngx_list_part_t中元素的大小上限ngx_uint_t nalloc;//每個ngx_list_part數(shù)組的容量ngx_pool_t *pool;//鏈表中管理內(nèi)存分配的內(nèi)存池對象 }ngx_list_t;

對于鏈表,Nginx提供的接口包括:

//pool為內(nèi)存池對象,size是結(jié)點中數(shù)組的每個元素的大小,n是數(shù)組中可容納元素的個數(shù),即結(jié)點大小為n*size

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

//初始化一個已有的鏈表

static ngx_inline ngx_int_t 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);

ngx_table_elt_t數(shù)據(jù)成員

typedef struct

{

??? ngx_uint_t hash;

??? ngx_str_t key;

??? ngx_str_t value;

??? u_char *lowcase_key;

}ngx_table_elt_t;

ngx_table_elt_t常用于http頭部。

ngx_buf_t數(shù)據(jù)結(jié)構(gòu)

緩沖區(qū)ngx_buf_t是Nginx處理大數(shù)據(jù)的關(guān)鍵數(shù)據(jù)結(jié)構(gòu),它既應(yīng)用于內(nèi)存數(shù)據(jù)也應(yīng)用于磁盤數(shù)據(jù)。

ngx_chain_t數(shù)據(jù)結(jié)構(gòu)

ngx_chain_t是與ngx_buf_t配合使用的鏈表數(shù)據(jù)結(jié)構(gòu)。

typedef struct ngx_chain_s ngx_chain_t;

struct ngx_chain_s

{

  ngx_buf_t *buf;

  ngx_chain_t *next;

};

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/3826304.html

總結(jié)

以上是生活随笔為你收集整理的【Nginx】基本数据结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。