READLINKAT(2)              Linux Programmer's Manual             READLINKAT(2)
NAME
       readlinkat - read value of a symbolic link relative to a directory file
       descriptor

SYNOPSIS
       #include <unistd.h>

       int readlinkat(int dirfd, const char *path, char *buf, size_t bufsiz);

DESCRIPTION
       The readlinkat() system call operates in exactly the same way as  read-
       link(2), except for the differences described in this manual page.

       If the pathname given in path is relative, then it is interpreted rela-
       tive to the directory referred to by the file descriptor dirfd  (rather
       than  relative to the current working directory of the calling process,
       as is done by readlink(2) for a relative pathname).

       If the pathname given in path is relative  and  dirfd  is  the  special
       value  AT_FDCWD, then path is interpreted relative to the current work-
       ing directory of the calling process (like readlink(2)).

       If the pathname given in path is absolute, then dirfd is ignored.

RETURN VALUE
       On success, readlinkat() returns 0.  On error, -1 is returned and errno
       is set to indicate the error.

ERRORS
       The  same  errors  that  occur for readlink(2) can also occur for read-
       linkat().  The following additional errors can occur for readlinkat():

       EBADF  dirfd is not a valid file descriptor.

       ENOTDIR
              path is a relative path and dirfd is a file descriptor referring
              to a file other than a directory.

NOTES
       See openat(2) for an explanation of the need for readlinkat().

CONFORMING TO
       This  system  call  is  non-standard but is proposed for inclusion in a
       future revision of POSIX.1.

VERSIONS
       readlinkat() was added to Linux in kernel 2.6.16.

SEE ALSO
       openat(2), path_resolution(2), readlink(2)

Linux 2.6.16                      2006-07-21                     READLINKAT(2)