www.delorie.com/gnu/docs/glibc/libc_617.html   search  
 
Buy the book!


The GNU C Library

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

29.12.2 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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003