utmp, wtmp - logged in users, login and logout history

     #include <sys/types.h>
     #include <utmp.h>

     The files /etc/utmp and /usr/adm/wtmp respectively contain the  currently
     logged in users, and the history of logins and logouts.

     Each file is an array of the following structure defined in <utmp.h>:

     struct utmp {
          char           ut_user[8];    /* user name */
          char           ut_line[12];   /* terminal name */
          char           ut_host[16];   /* host name, when remote */
          time_t         ut_time;       /* login/logout time */

     #define ut_name ut_user /* for compatibility with other systems */

     The structure contains more fields than those listed, but they  are  only
     of  interest  to  init  and  login.   Note  that  the  ut_name field is a
     compatibility alias for ut_user, it is actually better to use it.

     A login entry is completely specified.  A logout entry has a null  string
     for  ut_name.  A shutdown or reboot entry has an ut_line field containing
     a "~" (tilde).  The ut_name field is usually the name of the program that
     did  the  shutdown,  or "reboot" at reboot.  This is a bit confusing, but
     note that there should always be two such entries.  If you see  just  one
     entry then the system has crashed, if you see two entries then the system
     was properly shut down and later rebooted.


     /etc/utmp                Currently logged in users.

     /usr/adm/wtmp            History of logins and logouts.

     who(1), ttyslot(3).

     Kees J. Bot (kjb@cs.vu.nl)