readlink(2) - NetBSD Manual Pages

READLINK(2)               NetBSD System Calls Manual               READLINK(2)


NAME
readlink -- 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);
DESCRIPTION
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 buf.
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.
EXAMPLES
A typical use is illustrated in the following piece of code which reads the contents of a symbolic link named /symbolic/link and stores them as null-terminated string: #include <limits.h> #include <unistd.h> char buf[PATH_MAX]; ssize_t len; if ((len = readlink("/symbolic/link", buf, sizeof(buf)-1)) == -1) error handling; buf[len] = '\0';
ERRORS
readlink() will fail if: [ENOTDIR] A component of the path prefix is not a directory. [ENAMETOOLONG] A component of a pathname exceeded {NAME_MAX} charac- ters, or an entire path name exceeded {PATH_MAX} char- acters. [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 translat- ing the pathname. [EINVAL] The named file is not a symbolic link. [EIO] An I/O error occurred while reading from the file sys- tem. [EFAULT] buf extends outside the process's allocated address space.
SEE ALSO
lstat(2), stat(2), symlink(2), symlink(7)
STANDARDS
The readlink() function conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
HISTORY
The readlink() function appeared in 4.2BSD. The type returned was changed from int to ssize_t in NetBSD 2.1. NetBSD 4.0 May 11, 2004 NetBSD 4.0

Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.