ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_open_file
[打印本页]
作者:
天津储鑫盛钢材现货供应商
时间:
10 小时前
标题:
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_open_file
ngx_open_file
定义
在src/os/unix/ngx_files.h
#define ngx_open_file(name, mode, create, access) \
open((const char *) name, mode|create, access)
复制代码
#define NGX_FILE_RDONLY O_RDONLY
#define NGX_FILE_WRONLY O_WRONLY
#define NGX_FILE_RDWR O_RDWR
#define NGX_FILE_CREATE_OR_OPEN O_CREAT
#define NGX_FILE_OPEN 0
#define NGX_FILE_TRUNCATE (O_CREAT|O_TRUNC)
#define NGX_FILE_APPEND (O_WRONLY|O_APPEND)
#define NGX_FILE_NONBLOCK O_NONBLOCK
复制代码
1. #define NGX_FILE_RDONLY O_RDONLY
作用
:定义只读模式标记。
映射
:直接对应 Unix/Linux 的 O_RDONLY(值为 0)。
用途
:
用于以只读方式打开文件(如设置文件、静态资源文件)。
2. #define NGX_FILE_WRONLY O_WRONLY
作用
:定义写入模式标记。
映射
:对应 O_WRONLY(值为 1)。
用途
:
用于以只写方式打开文件(如日志文件、临时文件)。
留意
:
若文件不存在,需共同 NGX_FILE_CREATE_OR_OPEN 使用。
3. #define NGX_FILE_RDWR O_RDWR
作用
:定义读写模式标记。
映射
:对应 O_RDWR(值为 2)。
用途
:
需要同时读写文件时使用
4. #define NGX_FILE_CREATE_OR_OPEN O_CREAT
作用
:定义文件创建标记。
映射
:对应 O_CREAT(值为 0x40)。
用途
:
若文件不存在,则创建新文件;若存在,直接打开。
权限
:
需共同 access 参数指定权限(如 0644)。
5. #define NGX_FILE_OPEN 0
作用
:定义“仅打开”标记(不创建文件)。
映射
:值为 0,表示不添加任何额外标记。
用途
:
确保仅打开已存在的文件,避免意外创建新文件(如设置文件)。
场景
:
在解析主设置文件时使用,防止因路径错误创建无效文件。
6. #define NGX_FILE_TRUNCATE (O_CREAT|O_TRUNC)
作用
:定义截断模式标记。
映射
:组合 O_CREAT(创建)和 O_TRUNC(截断)。
用途
:
若文件存在,将其长度截断为 0(清空内容)。
若文件不存在,创建新文件。
7. #define NGX_FILE_APPEND (O_WRONLY|O_APPEND)
作用
:定义追加模式标记。
映射
:组合 O_WRONLY(写入)和 O_APPEND(追加)。
用途
:
每次写入操纵均追加到文件末尾,避免覆盖已有内容。
8. #define NGX_FILE_NONBLOCK O_NONBLOCK
作用
:定义非壅闭模式标记。
映射
:对应 O_NONBLOCK(值为 0x800)。
用途
:
使文件操纵立刻返回,避免壅闭(如异步 I/O 或装备文件操纵)。
留意
:
在 Nginx 中紧张用于处理非壅闭套接字,而非普通文件。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4