.TH READLINK 2 .UC .SH NAME readlink \- read value of a symbolic link .SH SYNOPSIS .nf .ft B cc = readlink(path, buf, bufsiz); int cc; char *path, *buf; int bufsiz; .fi .ft R .SH DESCRIPTION .I Readlink places the contents of the symbolic link .I name in the buffer .I buf which has size .IR bufsiz . The contents of the link are not null terminated when returned. .SH "RETURN VALUE 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 \fIerrno\fP. .SH "ERRORS .I Readlink will fail and the file mode will be unchanged if: .TP 20 [EINVAL] The path name contained a non-ASCII character. .TP 20 [ENOTDIR] A component of the path prefix is not a directory. .TP 20 [ENOENT] The named file does not exist. .TP 20 [ENXIO] The named file is not a symbolic link. .TP 20 [EACCES] Search permission is denied on a component of the path prefix. .TP 20 [EPERM] The effective user ID does not match the owner of the file and the effective user ID is not the super-user. .TP 20 [EINVAL] The named file is not a symbolic link. .TP 20 [EFAULT] .I Buf extends outside the process's allocated address space. .TP 20 [ELOOP] Too many symbolic links were encountered in translating the path name. .SH SEE ALSO lstat(2), stat(2), symlink(2)