HP-UX Reference (11i v2 03/08) - 2 System Calls (vol 5)
r
readlink(2) readlink(2)
NAME
readlink() - read the contents of a symbolic link
SYNOPSIS
#include <symlink.h>
int readlink(
const char *path,
char *buf,
size_t bufsiz
);
DESCRIPTION
The readlink() function places the contents of the symbolic link referred to by path in the buffer buf
which has size bufsiz . If the number of bytes in the symbolic link is less than bufsiz , the contents of the
remainder of buf are unspecified.
In systems conforming to AES standards, the returned string will be null-terminated if the length of the
path name string is less than bufsiz . If the length of the path name string is exactly bufsiz , the string
will not be null-terminated when returned. If the length of the path name string exceeds
bufsiz, the
readlink() function returns −1 and sets errno
to [ERANGE].
Note
The kernel tunable parameter
hpux_aes_override
can be queried to determine whether a system
conforms to AES standards.
RETURN VALUE
Upon successful completion,
readlink() returns the count of bytes placed in the buffer. Otherwise, it
returns a value of −1, leaves the buffer unchanged, and sets errno
to indicate the error.
ERRORS
The
readlink() function will fail if:
[EACCES] Search permission is denied for a component of the path prefix.
[EACCES] Read permission is denied for the directory.
[EFAULT]
buf or path points outside the process’s allocated address space. Reliable detec-
tion of this error is implementation-dependent.
[EINVAL] The path argument names a file that is not a symbolic link.
[EIO] An I/O error occurred while reading from the file system.
[ELOOP] Too many symbolic links were encountered in resolving path.
[ENAMETOOLONG]
The length of path exceeds
PATH_MAX, or a pathname component is longer than
NAME_MAX. In systems conforming to AES standards, this error will be returned
when the path exceeds the PATH_MAX bytes or a pathname component exceeds the
NAME_MAX bytes while _POSIX_NO_TRUNC is in effect.
[ENAMETOOLONG]
Pathname resolution of a symbolic link produced an intermediate result whose
length exceeds
PATH_MAX.
[ENOENT] A component of path does not name an existing file or path is an empty string.
[ENOTDIR] A component of the path prefix is not a directory.
[ERANGE] The length of the
path name string read from the symbolic link exceeds bufsiz.
AUTHOR
readlink() was developed by the University of California, Berkeley.
SEE ALSO
stat(2), symlink(2), symlink(4), <unistd.h>.
Section 2−−276 Hewlett-Packard Company − 1 − HP-UX 11i Version 2: August 2003