REALPATH(3) | Library Functions Manual | REALPATH(3) |
realpath
—
#include <sys/param.h>
#include <stdlib.h>
char *
realpath
(const
char * restrict pathname,
char * restrict
resolvedname);
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.
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.
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”).
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.
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 9.2 |