ngx_string.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源码分析--字符串处理相关推荐

  1. Nginx 源码分析

    1.工程 ngx_conf_file.c ngx_connection.c ngx_cycle.c ngx_file.h ngx_module.c ngx_open_file_cache.h ngx_ ...

  2. Nginx源码分析之 upstream指令

    #Nginx 源码分析 upstream指令 想要的解决问题: 1:upstream存储结构 2:动态 upstream 流程(proxy_pass跟随变量或者域名) 最简单的配置文件 http {u ...

  3. Nginx源码分析链接

    nginx-0.8.38源码探秘:http://blog.csdn.net/ccdd14/article/details/5872312 nginx源码分析: http://blog.sina.com ...

  4. Nginx源码分析:epoll事件处理模块概述

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> 事件处理模块概述 Nginx的高效请求的处理依赖于事件管理机制,本次默认的场景是Linux操 ...

  5. Nginx源码分析:惊群处理与负载均衡

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> Nginx的惊群处理与负载均衡概述 当Nginx工作在master/worker模式下时,就 ...

  6. Nginx源码分析:核心数据结构ngx_cycle_t与内存池概述

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> 核心数据结构与内存池概述 在Nginx中的核心数据结构就是ngx_cycle_t结构,在初始 ...

  7. Nginx源码分析:master/worker工作流程概述

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> Nginx的master与worker工作模式 在生成环境中的Nginx启动模式基本都是以m ...

  8. Nginx源码分析:启动流程

    nginx源码分析 nginx-1.11.1 参考书籍<深入理解nginx模块开发与架构解析> nginx简介 Nginx的作为服务端软件,表现的主要特点是更快.高扩展.高可靠性.低内存消 ...

  9. nginx源码分析—内存池结构ngx_pool_t及内存管理

    本博客( http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究.学习内容所做的笔记,欢迎广大朋友指正! Content 0.序 1.内存池结构 1.1 ...

最新文章

  1. 加权残差连接ReZero
  2. [学习笔记]Silverlight4 RIA 开发全程解析[项目全程记录]----第二章--为站点流行而准备:提供一个可扩展的体系结构(写作中)...
  3. leetcode算法题--设计链表
  4. 你用过这种奇葩的C#注释吗?如何看待
  5. 【Android】Fragment的简单笔记
  6. CANOpen报文类型
  7. 我用Python爬虫挣钱的那点事
  8. 医疗器械/设备的法律法规汇总
  9. python中多行语句可以使用反斜杠来实现吗_Python中的多行语句可以使用反斜杠来实现...
  10. 第二章 信托的关系及其设立
  11. Android动画总结系列(2)——补间动画使用
  12. Markdown个人学习记录
  13. Security and Communication Networks 论文投稿
  14. 如何用u盘装linux 7,U盘安装CentOS 7的方法
  15. Flink 1.12的CDC
  16. HCNA——Telnet,Ftp,Switch
  17. Java对Excel的读写详解(POI)
  18. vs2003一查找就卡死了
  19. pc电源改可调_是否可以从PC上关闭计算机显示器的电源?
  20. 看得见的实力!传智教育「智能机器人软件开发」课程,打造新型互联网人才!

热门文章

  1. mysql临时开启二进制_关于MySQL二进制日志Binlog的认识
  2. Java学习路线图,如何学习Java事半功倍?
  3. OpenCV中的对极几何和对极约束
  4. C++ 容器1 vector
  5. LDO和DC-DC有什么不同?如何选型?
  6. python argv 详解_Python3 sys.argv[ ]用法详解
  7. CMake结合PCL库学习(1)
  8. Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
  9. Revit LT 2022基本培训 Revit LT 2022 Essential Training
  10. Java Web之XML基础