Provided by: freebsd-manpages_7.0-2_all bug

NAME

     readlink - read value of a symbolic link

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <unistd.h>

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

DESCRIPTION

     The readlink() system call places the contents of the symbolic link path
     in the buffer buf, which has size bufsiz.  The readlink() system call
     does not append a NUL character to buf.

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 the
     global variable errno.

ERRORS

     The readlink() system call will fail if:

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

     [ENAMETOOLONG]     A component of a pathname exceeded 255 characters, or
                        an entire path name exceeded 1023 characters.

     [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]           The buf argument extends outside the process’s
                        allocated address space.

SEE ALSO

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

HISTORY

     The readlink() system call appeared in 4.2BSD.