NAME
sa_realpathat, sa_realpath - place canonicalized absolute pathname into a stralloc
SYNOPSIS
#include <fcntl.h> /* AT_FDCWD */ #include <limb/djbunix.h>
int sa_realpathat(stralloc *sa, int fd, const char *path) int sa_realpath(stralloc *sa, const char *path)
DESCRIPTION
The sa_realpathat
() function expands all symbolic links and resolves
references to .
and ..
in the NUL-terminated string pointed by path
to
produce the corresponding canonicalized absolute pathname, added into the
stralloc pointed by sa
.
If path
specify a relative path, it is relative to the directory associated
with the file descriptor fd
, which may be AT_FDCWD to use the current
working directory.
For more details, refer to realpath(3).
The sa_realpath
() macro is similar except when path
specifies a relative
path, in which case it is relative to the current working directory.
RETURN VALUE
On success these functions return 0. Otherwise they return -1 and set errno
to
indicate the error.
ERRORS
These functions may fail and set errno
if :
ENOMEM
Insufficient memory available to grow sa
They may may fail and set errno
for any of the errors described for
realpath(3).
The sa_realpathat
() function may also fail and set errno
for any of the
errors described for open_read(3) or fd_chdir(3).