realpath 子例程
用途
解析路径名。
库
标准 C 库 (libc.a)
语法
#include <stdlib.h>
char *realpath (const char *file_name, char *resolved_name)
描述
realpath 子例程在 file_name 中执行文件名扩展和路径名解析,并将其存储在 resolved_name 中。
realpath 子例程可以处理相对路径名和绝对路径名。 对于绝对路径名和相对路径名, realpath 子例程返回已解析的绝对路径名。
resolved_name 指向的字符必须足以包含完全解析的路径名。 PATH_MAX (在 limits.h 头文件中定义) 的值可用作相应的数组大小。
返回值
成功完成时, realpath 子例程将返回指向已解析名称的指针。 否则,它将返回空指针,并设置 errno 以指示错误。 如果 realpath 子例程迂到错误,那么未定义 resolved_name 的内容。
错误代码
在以下情况下, realpath 子例程失败并将 errno 设置为:
| 项 | 描述 |
|---|---|
EACCES |
对路径名的组件的读取或搜索许可权被拒绝。 |
EINVAL |
文件名 或 resolved_name 是空指针。 |
ELOOP |
在转换 文件名时迂到过多符号链接。 |
ENAMETOOLONG |
file_name 或 resolved_name 的长度超过 PATH_MAX ,或者路径名组件的长度超过 NAME_MAX。 |
ENOENT |
文件名 参数不存在,或指向空字符串。 |
ENOTDIR |
前缀为 文件名 的组件不是目录。 |
在下列情况下, realpath 子例程可能会失败:
| 项 | 描述 |
|---|---|
ENOMEM |
没有足够的存储空间可用。 |