.Os Darwin
.Sh NAME
.Nm setattrlist ,
-.Nm fsetattrlist
+.Nm fsetattrlist ,
+.Nm setattrlistat
.Nd set file system attributes
.Sh SYNOPSIS
.Fd #include <sys/attr.h>
.Fd #include <unistd.h>
.Ft int
-.Fn setattrlist "const char* path" "struct attrlist * attrList" "void * attrBuf" "size_t attrBufSize" "unsigned long options"
+.Fn setattrlist "const char * path" "struct attrlist * attrList" "void * attrBuf" "size_t attrBufSize" "unsigned long options"
.Ft int
.Fn fsetattrlist "int fd" "struct attrlist * attrList" "void * attrBuf" "size_t attrBufSize" "unsigned long options"
+.Ft int
+.Fn setattrlistat "int dir_fd" "const char * path" "struct attrlist * attrList" "void * attrBuf" "size_t attrBufSize" "uint32_t options"
.
.Sh DESCRIPTION
The
.Fa options
parameter lets you control specific aspects of the function's behaviour.
.Pp
+The
+.Fn setattrlistat
+system call is equivalent to
+.Fn setattrlist
+except in the case where
+.Fa path
+specifies a relative path.
+In this case the attributes are set for the file system object named by
+path relative to the directory associated with the file descriptor
+.Fa fd
+instead of the current working directory.
+If
+.Fn setattrlistat
+is passed the special value
+.Dv AT_FDCWD
+in the
+.Fa fd
+parameter, the current working directory is used and the behavior is
+identical to a call to
+.Fn setattrlist .
+.Pp
.
The
functions are only supported by certain volume format implementations.
ATTR_CMN_EXTENDED_SECURITY
.It
ATTR_CMN_GRPUUID
+.It
+ATTR_CMN_ADDEDTIME
.Pp
.It
ATTR_VOL_NAME
ATTR_CMN_MODTIME
.It
ATTR_CMN_ACCTIME
+.It
+ATTR_CMN_ADDEDTIME
.Pp
ATTR_CMN_CHGTIME
.Fa cannot be set programmatically. Any attempt to set change time is ignored.
An I/O error occurred while reading from or writing to the file system.
.El
.Pp
+.Pp
+In addition to the errors returned by the
+.Fn setattrlist ,
+the
+.Fn setattrlistat
+function may fail if:
+.Bl -tag -width Er
+.It Bq Er EBADF
+The
+.Fa path
+argument does not specify an absolute path and the
+.Fa fd
+argument is neither
+.Dv AT_FDCWD
+nor a valid file descriptor open for searching.
+.It Bq Er ENOTDIR
+The
+.Fa path
+argument is not an absolute path and
+.Fa fd
+is neither
+.Dv AT_FDCWD
+nor a file descriptor associated with a directory.
+.El
+.Pp
.
.Sh CAVEATS
.
.Sh HISTORY
A
.Fn setattrlist
-function call appeared in Darwin 1.3.1 (Mac OS X version 10.0).
+function call appeared in Darwin 1.3.1 (Mac OS X version 10.0). The setatrlistat function call first
+appeared in macOS version 10.13.
.