FreeBSD Manual Pages
READLINK(2) System Calls Manual READLINK(2) NAME readlink, readlinkat -- read value of a symbolic link LIBRARY Standard C Library (libc, -lc) SYNOPSIS #include <unistd.h> ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsiz); ssize_t readlinkat(int fd, const char *restrict path, char *restrict buf, size_t bufsize); DESCRIPTION The readlink() system call places the contents of the symbolic link path in the buffer buf, which has size bufsiz. The readlink() system call does not append a NUL character to buf. The readlinkat() system call is equivalent to readlink() except in the case where path specifies a relative path. In this case the symbolic link whose content is read relative to the directory associated with the file descrip- tor fd instead of the current working directory. If readlinkat() is passed the special value AT_FDCWD in the fd parameter, the current working direc- tory is used and the behavior is identical to a call to readlink(). RETURN VALUES The call returns the count of characters placed in the buffer if it suc- ceeds, or a -1 if an error occurs, placing the error code in the global variable errno. ERRORS The readlink() system call will fail if: [ENOTDIR] A component of the path prefix is not a directory. [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters. [ENOENT] The named file does not exist. [EACCES] Search permission is denied for a component of the path prefix. [ELOOP] Too many symbolic links were encountered in translating the pathname. [EINVAL] The named file is not a symbolic link. [EIO] An I/O error occurred while reading from the file sys- tem. [EINTEGRITY] Corrupted data was detected while reading from the file system. [EFAULT] The buf argument extends outside the process's allocated address space. In addition to the errors returned by the readlink(), the readlinkat() may fail if: [EBADF] The path argument does not specify an absolute path and the fd argument is neither AT_FDCWD nor a valid file de- scriptor open for searching. [ENOTDIR] The path argument is not an absolute path and fd is nei- ther AT_FDCWD nor a file descriptor associated with a directory. SEE ALSO fhreadlink(2), lstat(2), stat(2), symlink(2), symlink(7) STANDARDS The readlinkat() system call follows The Open Group Extended API Set 2 specification. HISTORY The readlink() system call appeared in 4.2BSD. The readlinkat() system call appeared in FreeBSD 8.0. FreeBSD ports 15.quarterly March 30, 2020 READLINK(2)
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=readlinkat&sektion=2&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>
