Go to the first, previous, next, last section, table of contents.


XPG User Accounting Database Functions

These functions, described in the X/Open Portability Guide, are declared in the header file `utmpx.h'.

Data Type: struct utmpx
The utmpx data structure contains at least the following members:

short int ut_type
Specifies the type of login; one of EMPTY, RUN_LVL, BOOT_TIME, OLD_TIME, NEW_TIME, INIT_PROCESS, LOGIN_PROCESS, USER_PROCESS or DEAD_PROCESS.
pid_t ut_pid
The process ID number of the login process.
char ut_line[]
The device name of the tty (without `/dev/').
char ut_id[]
The inittab ID of the process.
char ut_user[]
The user's login name.
struct timeval ut_tv
Time the entry was made. For entries of type OLD_TIME this is the time when the system clock changed, and for entries of type NEW_TIME this is the time the system clock was set to.

On the GNU system, struct utmpx is identical to struct utmp except for the fact that including `utmpx.h' does not make visible the declaration of struct exit_status.

The following macros are defined for use as values for the ut_type member of the utmpx structure. The values are integer constants and are, on the GNU system, identical to the definitions in `utmp.h'.

EMPTY
This macro is used to indicate that the entry contains no valid user accounting information.
RUN_LVL
This macro is used to identify the systems runlevel.
BOOT_TIME
This macro is used to identify the time of system boot.
OLD_TIME
This macro is used to identify the time when the system clock changed.
NEW_TIME
This macro is used to identify the time after the system changed.
INIT_PROCESS
This macro is used to identify a process spawned by the init process.
LOGIN_PROCESS
This macro is used to identify the session leader of a logged in user.
USER_PROCESS
This macro is used to identify a user process.
DEAD_PROCESS
This macro is used to identify a terminated process.

The size of the ut_line, ut_id and ut_user arrays can be found using the sizeof operator.

Function: void setutxent (void)
This function is similar to setutent. On the GNU system it is simply an alias for setutent.

Function: struct utmpx * getutxent (void)
The getutxent function is similar to getutent, but returns a pointer to a struct utmpx instead of struct utmp. On the GNU system it simply is an alias for getutent.

Function: void endutxent (void)
This function is similar to endutent. On the GNU system it is simply an alias for endutent.

Function: struct utmpx * getutxid (const struct utmpx *id)
This function is similar to getutid, but uses struct utmpx instead of struct utmp. On the GNU system it is simply an alias for getutid.

Function: struct utmpx * getutxline (const struct utmpx *line)
This function is similar to getutid, but uses struct utmpx instead of struct utmp. On the GNU system it is simply an alias for getutline.

Function: struct utmpx * pututxline (const struct utmpx *utmp)
The pututxline function is functionally identical to pututline, but uses struct utmpx instead of struct utmp. On the GNU system, pututxline is simply an alias for pututline.

Function: int utmpxname (const char *file)
The utmpxname function is functionally identical to utmpname. On the GNU system, utmpxname is simply an alias for utmpname.

You can translate between a traditional struct utmp and an XPG struct utmpx with the following functions. On the GNU system, these functions are merely copies, since the two structures are identical.

Function: int getutmp (const struct utmpx *utmpx, struct utmp *utmp)
getutmp copies the information, insofar as the structures are compatible, from utmpx to utmp.

Function: int getutmpx (const struct utmp *utmp, struct utmpx *utmpx)
getutmpx copies the information, insofar as the structures are compatible, from utmp to utmpx.


Go to the first, previous, next, last section, table of contents.