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).