| REALPATH(3) | Library Functions Manual | REALPATH(3) |
realpath — returns
the canonicalized absolute pathname
Standard C Library (libc, -lc)
#include
<sys/param.h>
#include <stdlib.h>
char *
realpath(const
char * restrict pathname,
char * restrict
resolvedname);
The
realpath()
function resolves all symbolic links, extra “/” characters and
references to /./ and /../
in pathname, and copies the resulting absolute
pathname into the memory referenced by resolvedname.
The resolvedname argument
must refer
to a buffer capable of storing at least MAXPATHLEN
characters, or be NULL.
The
realpath()
function will resolve both absolute and relative paths and return the
absolute pathname corresponding to pathname.
If resolvedname is
NULL, it will be allocated and the returned pointer
can be deallocated using
free(3). The
realpath() function returns
resolvedname on success. If an error occurs,
realpath() returns NULL, and
if resolvedname was not allocated by
realpath(), it will contain the pathname which
caused the problem.
The function realpath() may fail and set
the external variable errno for any of the errors
specified for the library functions
lstat(2),
readlink(2),
getcwd(3) and
malloc(3).
In addition, the following errors may be reported:
EINVAL]NULL.ELOOP]ENAMETOOLONG]MAXPATHLEN
characters.ENOENT]ENOTDIR]realpath() first appeared in
X/Open Portability Guide Issue 4, Version 2
(“XPG4.2”) and is part of IEEE Std
1003.1-2001 (“POSIX.1”).
The realpath() function call first
appeared in 4.4BSD. In NetBSD
7.0 the function was updated to accept a NULL
pointer for the resolvedname argument.
This implementation of realpath() differs
slightly from the Solaris implementation. The 4.4BSD
version always returns absolute pathnames, whereas the Solaris
implementation will, under certain circumstances, return a relative
resolvedname when given a relative
pathname.
| May 24, 2013 | NetBSD 11.0 |