open -- 2




HTTP 请求的 11 个处理阶段nginx 将一个 HTTP 请求分为 11 个处理阶段,这样做让每一个 HTTP 模块可以仅仅专注于完成一个独立、简单的功能,而一个请求的完整处理过程可以由多个 HTTP 模块共同合作完成将一次 HTTP 请求划分为 11 个处理阶段,通过每个阶段内部多个 HTTP 模块流水式的处理请求,可以极大地提高多个模块合作的协同性、可测试性、可扩展性 HTTP 处理阶段枚举类型 -- ngx_http_phases// enum ngx_http_phases // 11 个 HTTP 处理阶段枚举类型 {{{ typedef enum { // 接收到完整 HTTP 头部后处理阶段 NGX_HTTP_POST_READ_PHASE = 0, // 在 URI 与 location 匹配前修改请求的 URI(重定向) NGX_HTTP_SERVER_REWRITE_PHASE, // 根据请求 URI 匹配 location 表达式 // 该阶段只能由 ngx_http_core_module 模块实现
#技术帖    #web    #龙潭书斋    #open   
引言Unix系统中大多数文件IO只需要5个函数:open、read、write、lseek、close这些都是不带缓冲的IO,即每个read和write都调用内核中的一个系统调用,需要注意的是,这里的“不带缓冲的IO”指的是在用户的进程中对这些函数不会自动缓冲,而事实上,所有的磁盘IO都要经过内核的块缓冲区(即内核的缓冲区高速缓存),只有对原始的磁盘设备的IO例外 文件描述符对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,当打开或创建一个文件时,内核会返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传给read或write。文件描述符0与进程的标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错输出相关联。分别对应符号变量STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO(定义于 fcntl.h 中)。 open函数打开或创建文件,定义于 fcntl.h 头文件中int open( const char * pathname, int flags, . . . /*mode_t mode*/); 调用成功返回文件描述符,否则返回-1 第三个参数. . .表
#技术帖    #linux    #unix    #c++   



京ICP备15018585号