摘要:1. 有哪些内存池 init_cycle.pool : 用于初始化时使用,初始化后一定被释放 196 main(int argc, char *const *argv) 253 init_cycle.pool = ngx_create_pool(1024, log); 292 cycle = ngx
阅读全文
摘要:1. 读文件 1.1 读配置文件 1.1.1 打开文件 除了 获得文件描述符,还获得 文件信息 struct stat,这些信息都存放在 ngx_file_t 并使用 ngx_buf_t 用于缓存文件内容 而 ngx_file_t 和 ngx_buf_t 组合成 ngx_conf_file_t 15
阅读全文
摘要:1. ngx日志 功能: 格式化 增加 %V 等格式 前缀 时间 + pid + level level 控制是否输出 输出流控制 日志文件 + stderr 逻辑流程 判断level 加前缀 加格式化数据 输出流控制 时间模块 ngx的设计 1. 缓存时间信息 若每次读取时间都调用系统C库函数,则
阅读全文
摘要:1. 从 不可重入 到 可重入 可重入指,函数被并发调用。 若函数写 全局变量,则不可重入,改为 堆分配,则可重入。 2. 从 可重入 到 信号安全 信号安全指,函数A执行途中,处理信号,信号处理函数中 又调用 函数A。 若函数使用 全局变量,则信号不安全。若改为 堆分配,也不安全,因为 mallo
阅读全文
摘要:0. 什么是upstream 如,ngx通过proxy模块,将请求转发给上游http服务器,并最终返回给客户端。ngx通过cgi,将请求转发给php服务器,并返回给客户端。 1. 配置解析 简单配置如下 http { upstream { server localhost:8080; server
阅读全文
摘要:请求处理一定的流程是 创建监听套接字 接受连接 读取数据,解析请求 1. 监听套接字 1.1 加载配置——listen指令 ngx加载完 listen指令后会构造如上结构。 可见,ngx以 端口号为一个单位排布: 比如 80端口 : 127.0.0.1 192.168.1.1 8080端口: 192
阅读全文
摘要:0. 宏的语法 #define 标识符 参数列表 替换列表 换行符 #define 标识符(参数列表) 替换列表 换行符 宏和函数有点不同:宏可以不穿 实参,此时使用 占位标记 替换形参。 1. # 操作符 在替换列表中,若使用 # 操作符,则将 # 后跟的 形参部分,替换为 所对应的实参内容以字符
阅读全文
摘要:1. coredump Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。 1.1 开启coredump %e : 程序名 %p : 进程id %t : coredump 时间 %s : 信号 echo "/data/coredump/core.%e.%p.%t.%s"
阅读全文
摘要:1. 工具安装 1.1 wireless tools 修改Makefile的 PREFIX make 1.2 wpa_supplicant 编译 libnl 编译 openssl 编译 wpa 修改 wpa的 Makefile,添加 DESTDIR=/usr/local/wpa LIBS += -L
阅读全文
摘要:1. 概述 基于 STREAMS 的管道有三个特点: 全双工 可以传递文件描述符 可以用文件命名 2. socketpair #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socketpair(int domai
阅读全文