readlink(2)


readlink -- read the value of a symbolic link

Synopsis

   #include <unistd.h>
   

int readlink(const char *path, void *buf, size_t bufsiz);

Description

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.

Return values

On success, readlink returns the number of characters placed in the buffer. On failure, readlink returns -1, sets errno to identify the error, and the buffer remains unchanged.

In the following conditions, readlink fails and sets errno to:


EACCES
Search permission is denied for a component of the path prefix of path.

EACCES
Read permission is denied on the file named by path.

EFAULT
path or buf extends outside the allocated address space of the process.

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.

References

realpath(3C), stat(2), symlink(2)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004