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_typeSpecifies 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_pidThe 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_tvTime 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 system’s 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 clock 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.
void setutxent (void) ¶Preliminary: | MT-Unsafe race:utent | AS-Unsafe lock | AC-Unsafe lock fd | See POSIX Safety Concepts.
This function is similar to setutent. In the GNU C Library it is
simply an alias for setutent.
struct utmpx * getutxent (void) ¶Preliminary: | MT-Unsafe init race:utent sig:ALRM timer | AS-Unsafe heap lock | AC-Unsafe lock fd mem | See POSIX Safety Concepts.
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.
void endutxent (void) ¶Preliminary: | MT-Unsafe race:utent | AS-Unsafe lock | AC-Unsafe lock | See POSIX Safety Concepts.
This function is similar to endutent. In the GNU C Library it is
simply an alias for endutent.
struct utmpx * getutxid (const struct utmpx *id) ¶Preliminary: | MT-Unsafe init race:utent sig:ALRM timer | AS-Unsafe lock heap | AC-Unsafe lock mem fd | See POSIX Safety Concepts.
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.
struct utmpx * getutxline (const struct utmpx *line) ¶Preliminary: | MT-Unsafe init race:utent sig:ALRM timer | AS-Unsafe heap lock | AC-Unsafe lock fd mem | See POSIX Safety Concepts.
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.
struct utmpx * pututxline (const struct utmpx *utmp) ¶Preliminary: | MT-Unsafe race:utent sig:ALRM timer | AS-Unsafe lock | AC-Unsafe lock fd | See POSIX Safety Concepts.
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.
int utmpxname (const char *file) ¶Preliminary: | MT-Unsafe race:utent | AS-Unsafe lock heap | AC-Unsafe lock mem | See POSIX Safety Concepts.
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.
int getutmp (const struct utmpx *utmpx, struct utmp *utmp) ¶Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
getutmp copies the information, insofar as the structures are
compatible, from utmpx to utmp.
int getutmpx (const struct utmp *utmp, struct utmpx *utmpx) ¶Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
getutmpx copies the information, insofar as the structures are
compatible, from utmp to utmpx.