utmp(5) File Formats Manual utmp(5) (NAME) utmp, wtmp - (SYNOPSIS) #include (DESCRIPTION) utmp . utmp . : utmp <<>> (other) ( ) . utmp . utmp ( libc ): /* ut_type */ #define EMPTY 0 /* ( UT_UNKNOWN ) */ #define RUN_LVL 1 /* ( init(1)) */ #define BOOT_TIME 2 /* ( ut_tv) */ #define NEW_TIME 3 /* ( ut_tv) */ #define OLD_TIME 4 /* ( ut_tv) */ #define INIT_PROCESS 5 /* init(1) */ #define LOGIN_PROCESS 6 /* */ #define USER_PROCESS 7 /* */ #define DEAD_PROCESS 8 /* */ #define ACCOUNTING 9 /* */ #define UT_LINESIZE 32 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status { /* ut_exit */ short e_termination; /* */ short e_exit; /* */ }; struct utmp { short ut_type; /* */ pid_t ut_pid; /* PID */ char ut_line[UT_LINESIZE]; /* tty - "/dev/" */ char ut_id[4]; /* inittab(5) */ char ut_user[UT_NAMESIZE]; /* */ char ut_host[UT_HOSTSIZE]; /* */ struct exit_status ut_exit; /* DEAD_PROCESS init(1) */ /* ut_session ut_tv . . */ #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 int32_t ut_session; /* (getsid(2)) */ struct { int32_t tv_sec; /* */ int32_t tv_usec; /* */ } ut_tv; /* */ #else long ut_session; /* */ struct timeval ut_tv; /* */ #endif int32_t ut_addr_v6[4]; /* IPv4 ut_addr_v6[0] */ char __unused[20]; /* */ }; /* */ #define ut_name ut_user #ifndef _NO_UT_TIME #define ut_time ut_tv.tv_sec #endif #define ut_xtime ut_tv.tv_sec #define ut_addr ut_addr_v6[0] time(2) . ('\0') . inittab(5) init(1) . init(1) ut_type DEAD_PROCESS ut_user ut_host ut_time ut_type DEAD_PROCESS RUN_LVL ut_pid utmp . ut_id init(1) . ut_id inittab ut_pid ut_time ut_type INIT_PROCESS . mingetty(8) ( agetty(8)) PID ut_type LOGIN_PROCESS ut_time ut_line . login(1) ut_type USER_PROCESS ut_time ut_host ut_addr . mingetty(8) ( agetty(8)) login(1) ut_pid ut_line . init(1) utmp ut_pid ut_type DEAD_PROCESS ut_user ut_host ut_time . xterm(1) USER_PROCESS ut_id ( /dev/[pt]ty) . DEAD_PROCESS () . DEAD_PROCESS ut_line ut_time ut_user ut_host . telnetd(8) LOGIN_PROCESS login(1) . telnet telnetd(8) utmp . wtmp . utmp . ~ shutdown reboot |/} / date(1) . wtmp login(1) init(1) getty(8) ( mingetty(8) agetty(8)) . . (FILES) /var/run/utmp /var/log/wtmp (VERSIONS) POSIX.1 utmp utmpx ( XSI) ut_type ut_pid ut_line ut_id ut_user ut_tv. POSIX.1 ut_line ut_user . utmpx utmp . (STANDARDS) . (HISTORY) utmp v7/BSD System V . v7/BSD ut_type -v7/BSD ( ) . (slots) . BSD ut_id . ( System V) ut_id . ut_id (race conditions) utmp . System V BSD utmp . BSD . System V ut_host ut_addr_v6 . (NOTES) utmp utmp . who(1) utmp ( ). . (biarch) (x86-64 ppc64 s390x ) ut_tv . ut_session ut_time . . ut_session int32_t ut_tv int32_t tv_sec tv_usec . ut_tv struct timeval : gettimeofday((struct timeval *) &ut.ut_tv, NULL); : struct utmp ut; struct timeval tv; gettimeofday(&tv, NULL); ut.ut_tv.tv_sec = tv.tv_sec; ut.ut_tv.tv_usec = tv.tv_usec; (SEE ALSO) ac(1), date(1), init(1), last(1), login(1), logname(1), lslogins(1), users(1), utmpdump(1), who(1), getutent(3), getutmp(3), login(3), logout(3), logwtmp(3), updwtmp(3) Linux man-pages 6.19 2025-09-21 utmp(5)