Mac Developer Library Developer


This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

REALPATH(3)              BSD Library Functions Manual              REALPATH(3)

     realpath -- returns the canonicalized absolute pathname

     #include <stdlib.h>

     char *
     realpath(const char *restrict file_name, char *restrict resolved_name);

     The realpath() function resolves all symbolic links, extra ``/'' characters, and references to /./ and
     /../ in file_name.  If the resolved_name argument is non-NULL, the resulting absolute pathname is
     copied there (it must refer to a buffer capable of storing at least PATH_MAX characters).

     As a permitted extension to the standard, if resolved_name is NULL, memory is allocated for the result-ing resulting
     ing absolute pathname, and is returned by realpath().  This memory should be freed by a call to free(3)
     when no longer needed.

     The realpath() function will resolve both absolute and relative paths and return the absolute pathname
     corresponding to file_name.  All components of file_name must exist when realpath() is called.

     On success, the realpath() function returns the address of the resulting absolute pathname, which is
     resolved_name if it was non-NULL, or the address of newly allocated memory.  If an error occurs,
     realpath() returns NULL.  If resolved_name was non-NULL, it will contains the pathname which caused the

     Defining _DARWIN_C_SOURCE or _DARWIN_BETTER_REALPATH before including stdio.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 alloca(3), getattrlist(2), getcwd(3), lstat(2), readlink(2), stat(2), and

     #include <sys/param.h>
     #include <stdlib.h>

     The include file <sys/param.h> is necessary.

     In legacy mode, the last component of file_name does not need to exist when realpath() is called.

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

     The realpath() function first appeared in 4.4BSD.

BSD                              April 5, 2008                             BSD

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.