@node renameat2
@subsection @code{renameat2}
@findex renameat2

Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/renameat2.2.html,,man renameat2}

Gnulib module: ---

Portability problems fixed by Gnulib:
@itemize
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on many platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.8.x, mingw, MSVC 14, Android API level 29.
@item
This function succeeds when the @code{RENAME_NOREPLACE} flag is specified
and the source and destination are the same file, on some platforms:
Cygwin 3.4.6.
@item
@code{renameat2 (AT_FDCWD, "file", AT_FDCWD, "new/" ...)} succeeds
instead of failing and setting @code{errno} to @code{ENOTDIR}, on some
platforms:
@c https://sourceware.org/PR32570
GNU/Hurd with glibc 2.41.
@item
@code{renameat2 (ATFDCWD, "dir", AT_FDCWD, "new/" ...)} fails with
@code{errno} set to @code{ENOENT}, on some platforms:
@c https://sourceware.org/PR33607
GNU/Hurd with glibc 2.42.
@item
@code{renameat2 (ATFDCWD, "dir/", AT_FDCWD, "new" ...)} fails with
@code{errno} set to @code{ENOTDIR}, on some platforms:
@c https://sourceware.org/PR33608
GNU/Hurd with glibc 2.42.
@end itemize

@mindex renameatu
The @code{renameatu} module addresses some of these portability issues.
