readlink(2) manual page
Table of Contents
readlink - read the value of a symbolic link
#include <unistd.h>
int readlink(const char *path, void *buf, size_t bufsiz);
readlink() places the contents of the symbolic link referred to by path
in the buffer buf, which has size bufsiz. The contents of the link are not
null-terminated when returned.
Upon successful completion readlink()
returns the number of characters placed in the buffer; otherwise, it returns
-1 and places an error code in errno.
readlink() fails and the buffer
remains unchanged 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 named file is not a symbolic link.
- EIO
- An I/O error occurs
while reading from or writing to the file system.
- ELOOP
- Too many symbolic
links are encountered in translating path.
- ENAMETOOLONG
- The length of the
path argument exceeds {PATH_MAX}, or the length of a path component exceeds
{NAME_MAX} while {_POSIX_NO_TRUNC} is in effect.
- ENOENT
- The named file
does not exist.
- ENOSYS
- The file system does not support symbolic links.
stat(2)
, symlink(2)
Table of Contents