nginx自定義字符串

ngx_str_t是nginx自定義的字符串格式,其定義在ngx_string.h中,如下:

typedef struct {
    size_t      len; //字符串長度,不含'\0'
    u_char     *data; //真正字符串
} ngx_str_t;

它本質上就是一個結構體,nginx中廣泛使用這種格式字符串。
優點:減少對字符串長度的計算次數,nginx作爲web服務器大量的會計算字符的長度;可以隨時被引用,減少字符串拷貝帶來的性能損失。

對這種字符串的操作,nginx也提供了一系列的操作函數,定義在nginx_string.[c|h]中:
#define ngx_string(str) { sizeof(str) - 1, (u_char *) str }
將它一個普通字符串轉換成一個nginx字符串格式,如
ngx_str_t name = ngx_string(“http”); // 注意name是結構體,而不是指針,宏預處理後等價於
ngx_str_t name = {sizeof(“http”)-1, (u_char*)”http”};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章