Next: Logging In and Out, Previous: Manipulating the Database, Up: User Accounting Database [Contents][Index]
These functions, described in the X/Open Portability Guide, are declared in the header file utmpx.h.
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.
In the GNU C Library, 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, in the GNU C Library, 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.
This function is similar to setutent
. In the GNU C Library it is
simply an alias for setutent
.
The getutxent
function is similar to getutent
, but returns
a pointer to a struct utmpx
instead of struct utmp
. In
the GNU C Library it simply is an alias for getutent
.
This function is similar to endutent
. In the GNU C Library it is
simply an alias for endutent
.
This function is similar to getutid
, but uses struct utmpx
instead of struct utmp
. In the GNU C Library it is simply an alias
for getutid
.
This function is similar to getutid
, but uses struct utmpx
instead of struct utmp
. In the GNU C Library it is simply an alias
for getutline
.
The pututxline
function is functionally identical to
pututline
, but uses struct utmpx
instead of struct
utmp
. In the GNU C Library, pututxline
is simply an alias for
pututline
.
The utmpxname
function is functionally identical to
utmpname
. In the GNU C Library, utmpxname
is simply an
alias for utmpname
.
You can translate between a traditional struct utmp
and an XPG
struct utmpx
with the following functions. In the GNU C Library,
these functions are merely copies, since the two structures are
identical.
getutmp
copies the information, insofar as the structures are
compatible, from utmpx to utmp.
getutmpx
copies the information, insofar as the structures are
compatible, from utmp to utmpx.
Next: Logging In and Out, Previous: Manipulating the Database, Up: User Accounting Database [Contents][Index]