Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

resolvepath(2)                   System Calls                   resolvepath(2)

       resolvepath - resolve all symbolic links of a path name

       #include <unistd.h>

       int resolvepath(const char *path, char *buf, size_t bufsiz);

       The  resolvepath()  function  fully  resolves all symbolic links in the
       path name path into a resulting path name free of  symbolic  links  and
       places the resulting path name in the buffer buf which has size bufsiz.
       The resulting path name names the same file or directory as the  origi-
       nal  path name. All ``.'' components are eliminated and every non-lead-
       ing ``..'' component is eliminated together with its  preceding  direc-
       tory  component.  If leading ``..'' components reach to the root direc-
       tory, they are replaced by ``/''. If the number of bytes in the result-
       ing path name is less than bufsiz, the contents of the remainder of buf
       are unspecified.

       Upon successful completion, resolvepath() returns the  count  of  bytes
       placed  in  the  buffer.  Otherwise,  it returns  -1, leaves the buffer
       unchanged, and sets errno to indicate the error.

       The resolvepath() function will fail if:

       EACCES                  Search permission is denied for a component  of
                               the  path  prefix  of path or for a path prefix
                               component resulting from the  resolution  of  a
                               symbolic link.

       EFAULT                  The  path  or buf argument points to an illegal

       EIO                     An I/O error occurred while  reading  from  the
                               file system.

       ENOENT                  The  path argument is an empty string or a com-
                               ponent of path or a path  name  component  pro-
                               duced  by  resolving  a  symbolic link does not
                               name an existing file.

       ELOOP                   Too many symbolic  links  were  encountered  in
                               resolving path.

       ENAMETOOLONG            The  length of path exceeds PATH_MAX, or a path
                               name component is longer  than  NAME_MAX.  Path
                               name  resolution of a symbolic link produced an
                               intermediate  result   whose   length   exceeds
                               PATH_MAX  or  a  component whose length exceeds

       ENOTDIR                 A component of the path prefix of path or of  a
                               path  prefix component resulting from the reso-
                               lution of a symbolic link is not a directory.

       No more than PATH_MAX bytes will be placed in the buffer.  Applications
       should  not  assume  that the returned contents of the buffer are null-

       readlink(2), realpath(3C)

SunOS 5.10                        12 May 1997                   resolvepath(2)