READLINK(2) | System Calls Manual | READLINK(2) |
readlink
, readlinkat
—
#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
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 buf.
readlinkat
() works the same way as
readlink
() except if path is
relative. In that case, it is looked up from a directory whose file
descriptor was passed as fd. Search permission is
required on this directory. fd can be set to
AT_FDCWD
in order to specify the current
directory.
#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';
readlink
() and readlinkat
() will
fail if:
EACCES
]EFAULT
]EINVAL
]EIO
]ELOOP
]ENAMETOOLONG
]NAME_MAX
}
characters, or an entire path name exceeded
{PATH_MAX
} characters.ENOENT
]ENOTDIR
]In addition, readlinkat
() will fail
if:
readlink
() function conforms to
IEEE Std 1003.1-2001 (“POSIX.1”).
readlinkat
() conforms to IEEE Std
1003.1-2008 (“POSIX.1”).
readlink
() function appeared in
4.2BSD. The type returned was changed from
int to ssize_t in
NetBSD 2.1.
July 28, 2013 | NetBSD 9.2 |