| REALPATH(3) | Library Functions Manual | REALPATH(3) |
realpath — returns
the canonicalized absolute pathname
#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.
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.
Defining _DARWIN_C_SOURCE or
_DARWIN_BETTER_REALPATH before including stdlib.h
will cause the provided implementation of realpath()
to use F_GETPATH from fcntl(2) to discover the path.
The function realpath() may fail and set
the external variable errno for any of the errors
specified for the library functions getattrlist(2),
lstat(2), readlink(2), and
getcwd(3).
#include
<sys/param.h> #include
<stdlib.h>
The include file
<sys/param.h> is
necessary.
In legacy mode, the last component of
pathname does not need to exist when
realpath()
is called.
The realpath() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”).
The realpath() function first appeared in
4.4BSD.
| April 5, 2008 | Mac OS X 12 |