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企服之家,中国第一个企服评测及商务社交产业平台。 |