utmpx(4)                                                              utmpx(4)


NAME
     utmpx, wtmpx - utmp and wtmp extended-format entries

SYNOPSIS
     #include <utmpx.h>

DESCRIPTION
     utmpx and wtmpx files are extended versions of utmp and wtmp, resp.,
     containing records of type struct utmpx.  The utmpx struct is a superset
     of the utmp struct, containing both additional fields and larger array
     allocation for several existing fields.  utmpx's most significant
     addition is the ut_host field, which identifies the host from which the
     entry's job originated (if applicable).  All Silicon Graphics X terminal
     emulators initialize the field to $DISPLAY (see xdm(1)), but it may be
     blank (eg. a dumb terminal connected to a serial port).  Also, utmpx's
     ut_user and ut_line fields accommodate longer strings than their utmp
     counterparts.

     utmpx and wtmpx records have the following structure, defined in utmpx.h:

     #define UTMPX_FILE   "/var/adm/utmpx"
     #define WTMPX_FILE   "/var/adm/wtmpx"
     #define ut_name      ut_user
     #define ut_xtime     ut_tv.tv_sec
     struct     utmpx {
        char    ut_user[32];     /* user login name */
        char    ut_id[4];        /* /etc/inittab id (created by */
                                 /* process that puts entry in utmp) */
        char    ut_line[32];     /* device name (console, lnxx) */
        pid_t   ut_pid;          /* process id */
        short   ut_type;         /* type of entry */
        struct  exit_status {
           short  e_termination; /* process termination status */
           short  e_exit;        /* process exit status */
        } ut_exit;               /* exit status of a process */
                                 /* marked DEAD_PROCESS */
        struct timeval ut_tv;    /* time entry was made */
        long ut_session;         /* session ID, used for windowing */
        long pad[5];             /* reserved for future use */
        short ut_syslen;         /* length of ut_host including null */
        char ut_host[257];       /* remote host name */
     };

     /*  Definitions for ut_type  */
     #define EMPTY         0
     #define RUN_LVL       1
     #define BOOT_TIME     2
     #define OLD_TIME      3
     #define NEW_TIME      4
     #define INIT_PROCESS  5   /* process spawned by "init" */
     #define LOGIN_PROCESS 6   /* a "getty" process waiting for login */
     #define USER_PROCESS  7   /* a user process */


     #define DEAD_PROCESS  8
     #define ACCOUNTING    9
     #define UTMAXTYPE     ACCOUNTING /* max legal value of ut_type */
     /*  Below are the special strings or formats used in the "ut_line" */
     /*  field when accounting for something other than a process.  */
     /*  Strings for the ut_line field must be no more than 31 chars +  */
     /*  terminating NULL in length.  */

     #define RUNLVL_MSG     "run-level %c"
     #define BOOT_MSG       "system boot"
     #define OTIME_MSG      "old time"
     #define NTIME_MSG      "new time"

FILES
     /var/adm/utmpx
     /var/adm/wtmpx

WARNING
     All changes to /var/adm/wtmp must also be logged in /var/adm/wtmpx.  Most
     commands that extract information from these files silently discard all
     wtmpx entries without wtmp complements.

CAVEATS
     Although the ut_host field accommodates 257-character strings (256 chars
     + NULL), many commands truncate it for simpler formatting.  "w -W"
     displays the ut_host field on a new line, and in its entirety.

SEE ALSO
     w(1), login(1), who(1), last(1), utmp(4), write(1), xdm(1), getut(3C),
     getutx(3C), chkutent(1M)


                                                                        Page 2