MirBSD manpage: readlink(2)

READLINK(2)                BSD Programmer's Manual                 READLINK(2)


     readlink - read value of a symbolic link


     #include <unistd.h>

     readlink(const char *path, char *buf, size_t bufsiz);


     readlink() places the contents of the symbolic link path in the buffer
     buf, which has size bufsiz. readlink does not append a NUL character to


     The call returns the count of characters placed in the buffer if it
     succeeds, or a -1 if an error occurs, placing the error code in the glo-
     bal variable errno.


     readlink() will fail if:

     [ENOTDIR]     A component of the path prefix is not a directory.

                   A component of a pathname exceeded {NAME_MAX} characters,
                   or an entire path name exceeded {PATH_MAX} characters.

     [ENOENT]      The named file does not exist.

     [EACCES]      Search permission is denied for a component of the path

     [ELOOP]       Too many symbolic links were encountered in translating the

     [EINVAL]      The named file is not a symbolic link.

     [EIO]         An I/O error occurred while reading from the filesystem.

     [EFAULT]      buf extends outside the process's allocated address space.


     lstat(2), stat(2), symlink(2), symlink(7)


     The readlink() function call appeared in 4.2BSD. It used to return int
     but, matching IEEE Std 1003.1-2004 ("POSIX.1"), returns ssize_t now.

MirBSD #10-current            November 26, 2020                              1

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.