FreeBSD manual

download PDF document: resolvepath.3.pdf

RESOLVEPATH(3) Schily's LIBRARY FUNCTIONS RESOLVEPATH(3)
NAME resolvepath(), resolvenpath(), resolvefpath() - resolve all symbolic links of a path name
SYNOPSIS #include <schily/schily.h>
int resolvepath(path, buf, bufsiz) const char *path; char *buf; size_t bufsiz;
int resolvenpath(path, buf, bufsiz) const char *path; char *buf; size_t bufsiz;
int resolvefpath(path, buf, bufsiz, flags) const char *path; char *buf; size_t bufsiz; int flags;
DESCRIPTION resolvepath() takes a relative path name and resolves all symbolic links in the path name. The result is a path name that is free of symbolic links. path is relative path name that is used as the input. buf is the buffer used for the result of the conversion. bufsiz is the size of the result buffer.
All ``.'' components are eliminated and every non-leading ``..'' component is eliminated together with its preceding directory component. If leading ``..'' components reach to the root directory, they are replaced by ``/''.
resolvenpath() behaves like resolvepath() except that the file does not need to exist.
resolvefpath() takes an additional flags parameter from the set of flags from the following set:
RSPF_EXIST All path components must exist.
RSPF_NOFOLLOW_LAST Don't follow symbolic links in the last path component.

RETURN VALUE Upon successful completion, resolvepath(), resolvenpath() and resolvefpath() return the number of bytes placed in the buffer Otherwise, -1 is returned and errno is set to indicate the error. In case of an error, the contents of result buffer is left in an intermediate state.
other Any other value that may be a result of an underlying filesystem operation.
USAGE Applications should not assume that the returned contents of the buffer are null-terminated. This is because the function resolvepath(3) may be the Solaris version if the program is compiled on Solaris.
SEE ALSO resolvepath(3), resolvenpath(3), resolvefpath(3)
NOTES none
Joerg Schilling 2022/09/09 RESOLVEPATH(3)