REALPATH(3) Library Functions Manual REALPATH(3)

realpathreturns the canonicalized absolute pathname

#include <stdlib.h>

char *
realpath(const char * restrict pathname, char * restrict resolved_path);

The () 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 point to a buffer capable of storing at least PATH_MAX characters, or be NULL.

The () 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 () is called.

basename(3), dirname(3), free(3), getcwd(3), compat(5)

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