| NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | NOTES | SEE ALSO | COLOPHON | The Linux Programming Interface |
READLINK(2) Linux Programmer's Manual READLINK(2)
readlink - read value of a symbolic link
#include <unistd.h>
ssize_t readlink(const char *path, char *buf, size_t bufsiz);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
readlink():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE >= 200112L
readlink() places the contents of the symbolic link path in the buffer buf,
which has size bufsiz. readlink() does not append a null byte to buf. It
will truncate the contents (to a length of bufsiz characters), in case the
buffer is too small to hold all of the contents.
On success, readlink() returns the number of bytes placed in buf. On error,
-1 is returned and errno is set to indicate the error.
EACCES Search permission is denied for a component of the path prefix. (See
also path_resolution(7).)
EFAULT buf extends outside the process's allocated address space.
EINVAL bufsiz is not positive.
EINVAL The named file 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 translating the pathname.
ENAMETOOLONG
A pathname, or a component of a pathname, was too long.
ENOENT The named file does not exist.
ENOMEM Insufficient kernel memory was available.
ENOTDIR
A component of the path prefix is not a directory.
4.4BSD (readlink() first appeared in 4.2BSD), POSIX.1-2001.
In versions of glibc up to and including glibc 2.4, the return type of
readlink() was declared as int. Nowadays, the return type is declared as
ssize_t, as (newly) required in POSIX.1-2001.
lstat(2), readlinkat(2), stat(2), symlink(2), path_resolution(7), symlink(7)
This page is part of release 3.32 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can be found
at http://www.kernel.org/doc/man-pages/.
Linux 2010-09-20 READLINK(2)
HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface