NAME
getlastlogx,
getutmp,
getutmpx,
updlastlogx,
updwtmpx,
utmpxname —
user accounting database functions
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <utmpx.h>
struct lastlogx *
getlastlogx(
const
char *fname,
uid_t
uid,
struct lastlogx
*ll);
void
getutmp(
const
struct utmpx *ux,
struct
utmp *u);
void
getutmpx(
const
struct utmp *u,
struct
utmpx *ux);
int
updlastlogx(
const
char *fname,
uid_t
uid,
struct lastlogx
*ll);
int
updwtmpx(
const
char *file,
const struct
utmpx *utx);
int
utmpxname(
const
char *fname);
DESCRIPTION
The
getlastlogx() function looks up the entry for the user
with user id
uid in the
lastlogx(5) file given by
fname and returns it in
ll. If the
provided
ll is
NULL
, the
necessary space will be allocated by
getlastlogx() and
should be
free()d by the caller.
The
getutmp() function fills out the entries in the struct
utmp
u with the data provided in the struct utmpx
ux.
getutmpx() does the opposite,
filling out the entries in the struct utmpx
ux with the
data provided in the struct utmp
u, and initializing all
the unknown fields to 0. The sole exception is the
ut_type field, which will be initialized to
USER_PROCESS
.
The
updlastlogx() function tries to update the information for
the user with the user id
uid in the
lastlogx(5) file given by
fname with the data supplied in
ll. A
struct lastlogx is defined
like this:
struct lastlogx {
struct timeval ll_tv; /* time entry was created */
char ll_line[_UTX_LINESIZE]; /* tty name */
char ll_host[_UTX_HOSTSIZE]; /* host name */
struct sockaddr_storage ll_ss; /* address where entry was made from */
};
All the fields should be filled out by the caller.
The
updwtmpx() function updates the
wtmpx(5) file
file with the
utmpx(5) entry
utx.
The
utmpxname() function sets the default
utmpx(5) database file name to
fname.
RETURN VALUES
getlastlogx() returns the found entry on success, or
NULL
if it could not open the database, could not find
an entry matching
uid in there, or could not allocate
the necessary space (in case
ll was
NULL
).
utmpxname() returns 1 on success, or 0 if the supplied file
name was too long or did not end with ‘x’.
updlastlogx() and
updwtmpx() return 0 on
success, or -1 in case the database or file respectively could not be opened
or the data not written into it.
SEE ALSO
endutxent(3),
loginx(3),
utmpx(5)
HISTORY
The functions
getutmp(),
getutmpx(),
updwtmpx(), and
utmpxname() first appeared
in Solaris.
getlastlogx and
updlastlogx
first appeared in
NetBSD 2.0.