readlink(2)




NAME

     readlink - read the contents of a symbolic link


SYNOPSIS

     #include <unistd.h>

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


DESCRIPTION

     The readlink() function places the contents of the  symbolic
     link  referred  to  by path in the buffer buf which has size
     bufsiz.  If the number of bytes in the symbolic link is less
     than  bufsiz,  the contents of the remainder of buf are left
     unchanged. If the buf argument is not large enough  to  con-
     tain the link content, the first bufsize bytes are placed in
     buf.


RETURN VALUES

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


ERRORS

     The readlink() function will fail if:

     EACCES
           Search permission is denied for  a  component  of  the
           path prefix of path.

     EFAULT
           path or buf points to an illegal address.

     EINVAL
           The path argument names a file that is not a  symbolic
           link.

     EIO   An I/O error occurred while reading from the file sys-
           tem.

     ENOENT
           A component of path does not name an existing file  or
           path is an empty string.

     ELOOP A loop exists in  symbolic  links  encountered  during
           resolution of the path argument.

     ENAMETOOLONG
           The length of path exceeds {PATH_MAX}, or  a  pathname
           component    is    longer    than   {NAME_MAX}   while
           _POSIX_NO_TRUNC is in effect.

     ENOTDIR
           A component of the path prefix is not a directory.

     ENOSYS
           The file system does not support symbolic links.

     The readlink() function may fail if:

     EACCES
           Read permission is denied for the directory. This con-
           dition is reported.

     ELOOP More than {SYMLOOP_MAX} symbolic  links  were  encoun-
           tered in resolving path. This condition is reported.

     ENAMETOOLONG
           As a result of encountering a symbolic link in resolu-
           tion  of  the path argument, the length of the substi-
           tuted pathname string exceeded {PATH_MAX}. This condi-
           tion is reported.


USAGE

     Portable applications should not assume  that  the  returned
     contents of the symbolic link are null-terminated.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|
    | MT-Level                    | Async-Signal-Safe           |
    |_____________________________|_____________________________|


SEE ALSO

     stat(2), symlink(2), attributes(5), standards(5)


Man(1) output converted with man2html