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  con-
     tents (to a length of bufsiz characters), in case the buffer
     is too small to hold all of the contents.


RETURN VALUES

     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)