@node fchownat
@subsection @code{fchownat}
@findex fchownat

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchownat.html}

Gnulib module: fchownat
@mindex fchownat

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
AIX 5.1, HP-UX 11, Cygwin 1.5.x, mingw, MSVC 14.
But the replacement function is not safe to be used in libraries and
is not thread-safe.  Also, the replacement may fail to change
symlinks if @code{lchown} is unsupported, or fail altogether if
@code{chown} is unsupported.
@item
This function is declared in @code{<sys/stat.h>}, not in @code{<unistd.h>},
on some platforms:
Android 4.3.
@item
Some platforms fail to detect trailing slash on non-directories, as in
@code{fchown(dir,"link-to-file/",uid,gid,flag)}:
Solaris 9.
@item
Some platforms fail to update the change time when at least one
argument was not @minus{}1, but no ownership changes resulted:
OpenBSD 7.7.
@item
Some platforms mistakenly dereference symlinks when using
@code{AT_SYMLINK_NOFOLLOW}:
Linux kernel 2.6.17.
@item
This function does not fail for an empty filename on some platforms:
Linux with glibc < 2.11.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
When @code{AT_EMPTY_PATH} is used,
this function does not allow the file name to be a null pointer:
Linux kernel 6.10, Cygwin 3.6, FreeBSD 15.1.
@item
This function sometimes fails with @code{EACCES} when the failure is
due to lack of appropriate privileges (@code{EPERM}), not to
search permission denied on the file name prefix (@code{EACCES}):
Linux kernel 5.15 with glibc 2.35 and a CIFS v1 file system
(see @url{https://bugs.gnu.org/65599}).
@end itemize
