readlink (2)





NAME

       readlink - read value of a symbolic link


SYNOPSIS

       #include <unistd.h>

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


DESCRIPTION

       readlink  places  the  contents of the symbolic link path in the buffer
       buf, which has size bufsiz.  readlink does not append a  NUL  character
       to  buf.   It will truncate the contents (to a length of bufsiz charac-
       ters), in case the buffer is too small to hold all of the contents.


RETURN VALUE

       The call returns the count of characters placed in  the  buffer  if  it
       succeeds,  or a -1 if an error occurs, placing the error code in errno.


ERRORS

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

       EINVAL bufsiz is not positive.

       ENAMETOOLONG
              A pathname, or a component of a pathname, was too long.

       ENOENT The named file does not exist.

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

       ELOOP  Too  many  symbolic  links  were  encountered in translating the
              pathname.

       EINVAL The named file is not a symbolic link.

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

       EFAULT buf extends outside the process's allocated address space.

       ENOMEM Insufficient kernel memory was available.


CONFORMING TO

       X/OPEN, 4.4BSD (the readlink function call appeared in 4.2BSD).


SEE ALSO

       stat(2), lstat(2), symlink(2)

Linux 2.0.30                      1997-08-21                       readlink(2)