utmp.h
======

Defines functions for login and logout (to a tty session) and for examining the history of logins and logouts.

Documentation:

  * Manipulating the User Accounting Database (libc),

  * man utmp.

Gnulib module: utmp

Portability problems fixed by Gnulib:

  * This header file is missing on some platforms: FreeBSD 14.0, mingw, MSVC 14.

  * <sys/types.h> is a prerequisite of <utmp.h> on some platforms: FreeBSD 8.0, OpenBSD 7.2.

Portability problems not fixed by Gnulib:

  * While some platforms have the struct utmp field ut_user, older platforms have the field ut_name.

  * The struct utmp fields ut_id, ut_pid, ut_type do not exist on some platforms: macOS, old FreeBSD, NetBSD, OpenBSD, Minix.

  * The struct utmp field ut_host does not exist on some platforms: IRIX, Solaris.

  * The struct utmp field ut_exit does not exist on some platforms: macOS, old FreeBSD, NetBSD, OpenBSD, Minix, Cygwin.

  * The struct utmp field ut_session does not exist on some platforms: macOS, old FreeBSD, NetBSD, OpenBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin.

  * The struct utmp field ut_addr or ut_addr_v6 does not exist on some platforms: macOS, old FreeBSD, NetBSD, OpenBSD, Minix, AIX, IRIX, Solaris.

  * On some platforms, this API does not support timestamps past the year 2038: glibc 2.38 on 32-bit platforms like x86 and ARM where time_t was historically 32 bits.

  * On some platforms, this header misbehaves if the year2038 or year2038-recommended modules are used and the program is configured without the --disable-year2038 option. The readutmp module works around this problem: glibc 2.38 on 32-bit platforms like x86 and ARM where time_t was historically 32 bits. See Avoiding the year 2038 problem.