NAME
realpath() — resolve pathname
SYNOPSIS
#include <stdlib.h>
char *realpath(const char *file_name, char *resolved_name);
DESCRIPTION
The
realpath()
function derives, from the pathname pointed to by
file_name,
an absolute pathname that names the same file, whose resolution does not
involve
``.'',
``..'',
or symbolic links. The generated pathname is stored, up to
a maximum of
{PATH_MAX}
bytes, in the buffer pointed to by
resolved_name.
RETURN VALUE
On successful completion,
realpath()
returns a pointer to the resolved name. Otherwise,
realpath()
returns a null pointer and sets
errno
to indicate the error, and the
contents of the buffer pointed to by
resolved_name
are undefined.
ERRORS
The
realpath()
function will fail if:
- [EACCES]
Read or search permission was denied for a component of
file_name.
- [EINVAL]
Either the file_name or resolved_name argument is a null pointer.
- [EIO]
An error occurred while reading from the file system.
- [ELOOP]
Too many symbolic links were encountered in resolving path.
- [ENAMETOOLONG]
The file_name argument is longer than
{PATH_MAX}
or a pathname component is longer than
{NAME_MAX}.
- [ENOENT]
A component of file_name does not name an existing file
or file_name points to an empty string.
- [ENOTDIR]
A component of the path prefix is not a directory.
The
realpath()
function may fail if:
- [ENAMETOOLONG]
Pathname resolution of a symbolic link produced an intermediate result whose
length exceeds
{PATH_MAX}.
- [ENOMEM]
Insufficient storage space is available.
CHANGE HISTORY
First released in Issue 4, Version 2.