readlink(2)
NAME
readlink − read value of a symbolic link
SYNTAX
int cc = readlink(path, buf, bufsiz)
char *path, *buf;
int bufsiz;
DESCRIPTION
The readlink system call 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 returned.
RETURN VALUE
If successful, returns the count of characters placed in the buffer. If unsuccessful, returns a −1, and the global variable errno indicates the error code.
DIAGNOSTICS
The readlink call will fail if:
[EPERM] The specified path contained a byte with the high-order bit set.
[ENOENT] The pathname was 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 superuser.
[EINVAL] The named file is not a symbolic link.
[EFAULT] The specified buf extends outside the process’s allocated address space.
[ELOOP] Too many symbolic links were encountered in translating the pathname.