READLINK(2)
NAME
readlink − read value of a symbolic link
USAGE
cc = readlink(path, buf, bufsiz) int cc; char *path, *buf; int bufsiz;
DESCRIPTION
Readlink places the contents of symbolic link named by path into the buffer buf, which has size bufsiz. The contents of the link are not null-terminated when they are returned.
RETURN VALUE
A successful call returns the number of characters in buf. A failed call returns -1 and sets errno as indicated below.
ERRORS
Readlink will fail and the mode of path will be unchanged if:
[EPERM] The path argument contains a byte with the high-order bit set.
[ENOENT] The pathname is too long.
[ENOTDIR] A component of the path prefix is not a directory.
[ENOENT] The named file does not exist.
[ENXIO] The named file is not a symbolic link.
[EACCES] Search permission is denied on a component of the path prefix.
[EPERM] The effective user ID does not match the owner of the file and the effective user ID is not the super-user.
[EINVAL] The named file is not a symbolic link.
[EFAULT] Buf extends outside the process’s allocated address space.
[ELOOP] The call encountered too many symbolic links in translating the pathname.