#include <utmpx.h>
These files, which hold user and accounting information for such commands as who, write, and login, have the following structure as defined by utmpx.h:
#define ut_name ut_user #define ut_xtime ut_tv.tv_sec
The utmpx structure includes the following members:
char ut_user[32]; /* user login name */ char ut_id[4]; /* inittab id */ char ut_line[32]; /* device name (console, lnxx) */ pid_t ut_pid; /* process id */ short ut_type; /* type of entry */ struct ut_exit_status { short ut_e_termination; /* termination status */ short ut_e_exit; /* exit status */ } ut_exit; /* process termination/exit status */ struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ } ut_tv; /* time entry was made */ long ut_session; /* session ID, used for windowing */ long pad[5]; /* reserved for future use */ short ut_syslen; /* significant length of ut_host */ /* including terminating 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 UTMAXTYPE ACCOUNTING /* Largest legal value of ut_type */
/* Below are special strings or formats used in the "ut_line" */ /* field when accounting for something other than a process. */ /* No string for the ut_line field should be more than 31 chars + */ /* a null character in length. */#define RUNLVL_MSG "run-level %c" #define BOOT_MSG "system boot" #define OTIME_MSG "old time" #define NTIME_MSG "new time" #define MOD_WIN 10
/var/adm/utmpx /var/adm/wtmpx