readlink - Read the value of a symbolic link
#include <unistd.h>
int readlink(
const char *path,
char *buffer,
size_t buf_size );
The following version of the buf_size argument does not
conform to the XSH specification and is supported only for
backward compatibility:
int buf_size
Interfaces documented on this reference page conform to
industry standards as follows:
readlink(): XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Specifies the pathname of the destination file or directory.
Points to the user's buffer. The buffer should be
at least as large as the buf_size parameter. Specifies
the size of the buffer.
The readlink() function places the contents of the symbolic
link named by the path parameter in buffer, which
has size buf_size.
If the actual length of the symbolic link is greater than
buf_size, an error is returned. The length of a symbolic
link will not exceed PATH_MAX.
[Tru64 UNIX] If the actual length of the symbolic link is
less than buf_size, the string copied into the buffer is
null terminated.
For a readlink() function to complete successfully, the
calling process must have search access to the directory
containing the link.
Upon successful completion, the readlink() function
returns a count of bytes placed in the buffer (not including
any terminating null). If the readlink() function
fails, the buffer is not modified, a value of -1 is
returned, and errno is set to indicate the error.
The readlink() function sets errno to the specified values
for the following conditions:
Search permission is denied on a component of the path
prefix of the path parameter, or read permission is denied
on the final component of the path prefix of the path
parameter. The file named by the path parameter is not a
symbolic link. An I/O error occurred while reading from
or writing to the file system. Too many symbolic links
were encountered in resolving path. The length of the
path parameter exceeds PATH_MAX, or a pathname component
is longer than NAME_MAX while _POSIX_NO_TRUNC is in
effect. The file named by the path parameter does not
exist or the path parameter points to an empty string. A
component of the path prefix of the path parameter is not
a directory. [Tru64 UNIX] The pathname in the symbolic
link is longer than buf_size.
For NFS file access, if the readlink() function fails,
errno may also be set to one of the following values:
[Tru64 UNIX] The owner or group ID is not a value supported
by this implementation. [Tru64 UNIX] Indicates a
stale NFS file handle. An opened file was deleted by the
server or another client; a client cannot open a file
because the server has unmounted or unexported the remote
directory; or the directory that contains an opened file
was either unmounted or unexported by the server.
Functions: link(2), stat(2), symlink(2), unlink(2)
Standards: standards(5)
readlink(2)
[ Back ] |