FreeBSD manual
download PDF document: rel2abs.3.pdf
REL2ABS(3) FreeBSD Library Functions Manual REL2ABS(3)
NAME
rel2abs - make an absolute path name from a relative path name
SYNOPSIS
char *
rel2abs(const char *path, const char *base, char *result, size_t size);
DESCRIPTION
The rel2abs() function makes an absolute path name from a relative path
name path based on a directory base and copies the resulting path name
into the memory referenced by result. The result argument must refer to
a buffer capable of storing at least size character
The resulting path name may include symbolic links. abs2rel() doesn't
check whether or not any path exists.
RETURN VALUES
The rel2abs() function returns absolute path name on success. If an
error occurs, it returns NULL.
EXAMPLES
char result[MAXPATHLEN];
char *path = rel2abs("../../src/sys", "/usr/local/lib", result,
MAXPATHLEN);
yields:
path == "/usr/src/sys"
Similarly,
path1 = rel2abs("src/sys", "/usr", result, MAXPATHLEN);
path2 = rel2abs(".", "/usr/src/sys", result, MAXPATHLEN);
yields:
path1 == "/usr/src/sys"
path2 == "/usr/src/sys"
ERRORS
The rel2abs() function may fail and set the external variable errno to
indicate the error.
[EINVAL] The base directory isn't an absolute path name or the
size argument is zero.
[ERANGE] The size argument is greater than zero but smaller
than the length of the pathname plus 1
SEE ALSO
abs2rel(3)
AUTHORS
Shigio Yamaguchi (shigio@tamacom.com)
FreeBSD 14.0-RELEASE-p11 August 7, 2022 FreeBSD 14.0-RELEASE-p11