Nginx源码分析--字符串处理
生活随笔
收集整理的這篇文章主要介紹了
Nginx源码分析--字符串处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ngx_string.c
void ngx_strlow(u_char *dst, u_char *src, size_t n);
將src的前n個字符轉換成小寫存放在dst字符串當中,調用者需要保證dst指向的空間大于等于n。操作不會對原字符串產生變動。如要更改原字符串,可以:
大寫轉小寫
#define ngx_tolower(c)????? (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
A?? 65??? 1000001
a?? 97??? 1100001
0x20=????? 100000
TMOD|= 0x20等價于
TMOD= TMOD|0x20 ?
表示將TMOD的第5位置1,而后者表示直接賦值。
#define ngx_toupper(c)????? (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)
void ngx_strlow(u_char *dst, u_char *src, size_t n);
將src的前n個字符轉換成小寫存放在dst字符串當中,調用者需要保證dst指向的空間大于等于n。操作不會對原字符串產生變動。如要更改原字符串,可以:
ngx_str_t str = ngx_string("hello world"); ngx_strlow(str->data, str->data, str->len);
void
ngx_strlow(u_char *dst, u_char *src, size_t n)
{while (n) {*dst = ngx_tolower(*src);dst++;src++;n--;}
}
大寫轉小寫
#define ngx_tolower(c)????? (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)
A?? 65??? 1000001
a?? 97??? 1100001
0x20=????? 100000
TMOD|= 0x20等價于
TMOD= TMOD|0x20 ?
表示將TMOD的第5位置1,而后者表示直接賦值。
#define ngx_toupper(c)????? (u_char) ((c >= 'a' && c <= 'z') ? (c & ~0x20) : c)
總結
以上是生活随笔為你收集整理的Nginx源码分析--字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数指针--Nginx和Redis中两种
- 下一篇: Nginx源码分析--基本数据类型的别名