Provided by: manpages_2.17-1_all bug

NAME

       utmp, wtmp - login records

SYNOPSIS

       #include <utmp.h>

DESCRIPTION

       The utmp file allows one to discover information about who is currently
       using the system.  There may be more users currently using the  system,
       because not all programs use utmp logging.

       Warning:  utmp  must  not  be  writable,  because  many system programs
       (foolishly) depend on its integrity.  You risk  faked  system  logfiles
       and  modifications  of  system  files if you leave utmp writable to any
       user.

       The file is a sequence of entries with the following structure declared
       in  the include file (note that this is only one of several definitions
       around; details depend on the version of libc):

          #define UT_UNKNOWN      0
          #define RUN_LVL         1
          #define BOOT_TIME       2
          #define NEW_TIME        3
          #define OLD_TIME        4
          #define INIT_PROCESS    5
          #define LOGIN_PROCESS   6
          #define USER_PROCESS    7
          #define DEAD_PROCESS    8
          #define ACCOUNTING      9

          #define UT_LINESIZE     12
          #define UT_NAMESIZE     32
          #define UT_HOSTSIZE     256

          struct exit_status {
            short int e_termination;    /* process termination status */
            short int e_exit;           /* process exit status */
          };

          struct utmp {
            short ut_type;              /* type of login */
            pid_t ut_pid;               /* PID of login process */
            char ut_line[UT_LINESIZE];  /* device name of tty - "/dev/" */
            char ut_id[4];              /* init id or abbrev. ttyname */
            char ut_user[UT_NAMESIZE];  /* user name */
            char ut_host[UT_HOSTSIZE];  /* hostname for remote login */
            struct exit_status ut_exit; /* The exit status of a process
                                           marked as DEAD_PROCESS */

            /* The ut_session and ut_tv fields must be the same size when
               compiled 32- and 64-bit.  This allows data files and shared
               memory to be shared between 32- and 64-bit applications */
          #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
            int32_t ut_session;         /* Session ID, used for windowing */
            struct {
              int32_t tv_sec;           /* Seconds */
              int32_t tv_usec;          /* Microseconds */
            } ut_tv;                    /* Time entry was made */
          #else
             long int ut_session;        /* Session ID, used for windowing */
             struct timeval ut_tv;       /* Time entry was made */
          #endif

            int32_t ut_addr_v6[4];       /* IP address of remote host */
            char __unused[20];           /* Reserved for future use */
          };

          /* Backwards compatibility hacks.  */
          #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]

       This structure gives the name of the special file associated  with  the
       user’s  terminal,  the  user’s login name, and the time of login in the
       form of time(2).  String fields are terminated  by  â€â€™

Powered by the Ubuntu Manpage Repository generator
Maintained by Dustin Kirkland