NOTE: click here if you get an empty page.

READLINKAT(2)		   Linux Programmer's Manual		 READLINKAT(2)


readlinkat - read value of a symbolic link relative to a directory file descriptor


#include <unistd.h> int readlinkat(int dirfd, const char *path, char *buf, size_t bufsiz);


The readlinkat() system call operates in exactly the same way as readlink(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.


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


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.


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


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


readlinkat() was added to Linux in kernel 2.6.16.


openat(2), path_resolution(2), readlink(2) Linux 2.6.16 2006-07-21 READLINKAT(2)

1994 Man-cgi 1.15, Panagiotis Christias <>