realpath —
returns the canonicalized absolute
pathname
Standard C Library (libc, -lc)
#include
<stdlib.h>
char *
realpath(const
char * restrict pathname,
char * restrict
resolved_path);
The
realpath()
function resolves all symbolic links, extra “/” characters and
references to /./ and /../
in pathname, and copies the resulting absolute
pathname into the memory pointed to by resolved_path.
The resolved_path argument
must point
to a buffer capable of storing at least PATH_MAX
characters, or be NULL.
The
realpath()
function will resolve both absolute and relative paths and return the
absolute pathname corresponding to pathname. All
components of pathname must exist when
realpath() is called, and all but the last component
must name either directories or symlinks pointing to the directories.
On success, the realpath() function
returns resolved_path if it was not
NULL, or a pointer to a null-terminated string which
must be freed by the caller if it was. If an error occurs,
realpath() returns NULL, and
if resolved_path was not NULL,
the array that it points to contains 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) and
getcwd(3).
The realpath() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”).
The realpath() function first appeared in
4.4BSD.