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 the symbolic link name in the buffer buf which has size bufsiz. The contents of the link are not null-terminated when they are returned.
RETURN VALUE
The call returns the count of characters placed in the buffer if it succeeds. The call return a −1 if an error occurs, placing the error code in the global variable errno.
ERRORS
Readlink will fail and the file mode 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’ allocated address space.
[ELOOP] The call encountered too many symbolic links in translating the pathname.