定义在 src\core\ngx_file.c
ngx_int_t
ngx_get_full_name(ngx_pool_t *pool, ngx_str_t *prefix, ngx_str_t *name)
{size_t len;u_char *p, *n;ngx_int_t rc;rc = ngx_test_full_name(name);if (rc == NGX_OK) {return rc;}len = prefix->len;#if (NGX_WIN32)if (rc == 2) {len = rc;}#endifn = ngx_pnalloc(pool, len + name->len + 1);if (n == NULL) {return NGX_ERROR;}p = ngx_cpymem(n, prefix->data, len);ngx_cpystrn(p, name->data, name->len + 1);name->len += len;name->data = n;return NGX_OK;
}
ngx_get_full_name
是一个用于处理文件路径拼接的函数。它通过将前缀路径(prefix
)和目标路径(name
)组合成完整的路径名,确保路径的正确性和完整性
- 返回值 :
ngx_int_t
类型,表示操作结果。
NGX_OK
:成功。NGX_ERROR
:失败。- 参数 :
pool
:内存池指针,用于分配动态内存。prefix
:前缀路径(如配置文件目录路径)。name
:目标路径(可能是相对路径或绝对路径)。
rc = ngx_test_full_name(name);if (rc == NGX_OK) {return rc;}
检查是否已经是完整路径
- 调用
ngx_test_full_name
检查name
是否已经是完整路径(如绝对路径)。
- 如果是完整路径,直接返回
NGX_OK
,无需进一步处理。- 避免对已经完整的路径进行重复处理,提升效率。
ngx_test_full_name
ngx_test_full_name-CSDN博客
rc == NGX_OK
当前 name 是绝对路径
返回