Originální popis anglicky: 
endutxent, getutxent, getutxid, getutxline, pututxline, setutxent - user
  accounting database functions
Návod, kniha: POSIX Programmer's Manual
#include <utmpx.h>
 
 
void endutxent(void);
 
struct utmpx *getutxent(void);
 
struct utmpx *getutxid(const struct utmpx * 
id);
 
struct utmpx *getutxline(const struct utmpx * 
line);
 
struct utmpx *pututxline(const struct utmpx *
  
utmpx);
 
void setutxent(void); 
 
 
These functions shall provide access to the user accounting database.
The 
getutxent() function shall read the next entry from the user
  accounting database. If the database is not already open, it shall open it. If
  it reaches the end of the database, it shall fail.
The 
getutxid() function shall search forward from the current point in
  the database. If the 
ut_type value of the 
utmpx structure
  pointed to by 
id is BOOT_TIME, OLD_TIME, or NEW_TIME, then it shall
  stop when it finds an entry with a matching 
ut_type value. If the
  
ut_type value is INIT_PROCESS, LOGIN_PROCESS, USER_PROCESS, or
  DEAD_PROCESS, then it shall stop when it finds an entry whose type is one of
  these four and whose 
ut_id member matches the 
ut_id member of
  the 
utmpx structure pointed to by 
id. If the end of the database
  is reached without a match, 
getutxid() shall fail.
The 
getutxline() function shall search forward from the current point in
  the database until it finds an entry of the type LOGIN_PROCESS or USER_PROCESS
  which also has a 
ut_line value matching that in the 
utmpx
  structure pointed to by 
line. If the end of the database is reached
  without a match, 
getutxline() shall fail.
The 
getutxid() or 
getutxline() function may cache data. For this
  reason, to use 
getutxline() to search for multiple occurrences, the
  application shall zero out the static data after each success, or
  
getutxline() may return a pointer to the same 
utmpx structure.
There is one exception to the rule about clearing the structure before further
  reads are done. The implicit read done by 
pututxline() (if it finds
  that it is not already at the correct place in the user accounting database)
  shall not modify the static structure returned by 
getutxent(),
  
getutxid(), or 
getutxline(), if the application has modified
  this structure and passed the pointer back to 
pututxline().
For all entries that match a request, the 
ut_type member indicates the
  type of the entry. Other members of the entry shall contain meaningful data
  based on the value of the 
ut_type member as follows:
  
    
    
  
  
    | ut_type Member | Other Members with Meaningful Data | 
  
    | EMPTY | No others | 
  
    | BOOT_TIME | ut_tv | 
  
    | OLD_TIME | ut_tv | 
  
    | NEW_TIME | ut_tv | 
  
    | USER_PROCESS | ut_id, ut_user (login name of the user), ut_line,
      ut_pid, ut_tv | 
  
    | INIT_PROCESS | ut_id, ut_pid, ut_tv | 
  
    | LOGIN_PROCESS | ut_id, ut_user (implementation-defined name of the login
      process), ut_pid, ut_tv | 
  
    | DEAD_PROCESS | ut_id, ut_pid, ut_tv | 
An implementation that provides extended security controls may impose
  implementation-defined restrictions on accessing the user accounting database.
  In particular, the system may deny the existence of some or all of the user
  accounting database entries associated with users other than the caller.
If the process has appropriate privileges, the 
pututxline() function
  shall write out the structure into the user accounting database. It shall use
  
getutxid() to search for a record that satisfies the request. If this
  search succeeds, then the entry shall be replaced. Otherwise, a new entry
  shall be made at the end of the user accounting database.
The 
endutxent() function shall close the user accounting database.
The 
setutxent() function shall reset the input to the beginning of the
  database. This should be done before each search for a new entry if it is
  desired that the entire database be examined.
These functions need not be reentrant. A function that is not required to be
  reentrant is not required to be thread-safe.
Upon successful completion, 
getutxent(), 
getutxid(), and
  
getutxline() shall return a pointer to a 
utmpx structure
  containing a copy of the requested entry in the user accounting database.
  Otherwise, a null pointer shall be returned.
The return value may point to a static area which is overwritten by a subsequent
  call to 
getutxid() or 
getutxline().
Upon successful completion, 
pututxline() shall return a pointer to a
  
utmpx structure containing a copy of the entry added to the user
  accounting database. Otherwise, a null pointer shall be returned.
The 
endutxent() and 
setutxent() functions shall not return a
  value.
No errors are defined for the 
endutxent(), 
getutxent(),
  
getutxid(), 
getutxline(), and 
setutxent() functions.
The 
pututxline() function may fail if:
  - EPERM
- The process does not have appropriate privileges.
      
The following sections are informative.
None.
The sizes of the arrays in the structure can be found using the 
sizeof
  operator.
None.
None.
The Base Definitions volume of IEEE Std 1003.1-2001,
  
<utmpx.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
  Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
  Operating System Interface (POSIX), The Open Group Base Specifications Issue
  6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
  Engineers, Inc and The Open Group. In the event of any discrepancy between
  this version and the original IEEE and The Open Group Standard, the original
  IEEE and The Open Group Standard is the referee document. The original
  Standard can be obtained online at http://www.opengroup.org/unix/online.html
  .