| 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 10.0 |