@node getlogin_r
@subsection @code{getlogin_r}
@findex getlogin_r

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

Gnulib module: getlogin_r
@mindex getlogin_r

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
NetBSD 3.0, Minix 3.1.8, mingw, MSVC 14, Android 8.1.
@item
This function is not declared unless @code{_REENTRANT} is defined,
on some platforms:
HP-UX 11.
@item
This function returns a truncated result, instead of failing with error code
@code{ERANGE}, when the buffer is not large enough, on some platforms:
macOS 14.
@item
This function returns the value of the @env{LOGNAME} environment variable
and is therefore arbitrarily fakeable:
musl libc 1.2.5.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
This function has an incompatible declaration on some platforms:
FreeBSD 12.0, MidnightBSD 2.0, Solaris 11.4 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
@item
This function fails even when standard input is a tty on some platforms:
HP-UX 11.11.
@item
This function fails with error code @code{EINVAL} instead of @code{ERANGE} when
the second argument is zero on some platforms:
HP-UX 11.31.
@item
This function fails with error code @code{ENOMEM} instead of @code{ERANGE} on
some platforms:
@c https://dev.haiku-os.org/ticket/18349
Haiku.
@item
When there are several user names with the same user ID,
this function may return, instead of the user name that logged in,
another user name that has the same user ID, on some platforms:
Linux and others.
@end itemize
