GETLASTLOGX(3)

NAME
getlastlogx, updlastlogx, updwtmpx, _updwtmpx, utmpxname - user accounting database functions

LIBRARY
libc

SYNOPSIS
#include <utmpx.h>
struct lastlogx *
getlastlogx(const char *fname, uid_t uid, struct lastlogx *ll);
int
updlastlogx(const char *fname, uid_t uid, struct lastlogx *ll);
void
updwtmpx(const char *file, const struct utmpx *utx);
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 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() and _updwtmpx() functions update 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 updwtmpx(), _updwtmpx() and utmpxname() first appeared in Solaris. getlastlogx and updlastlogx first appeared in NetBSD 2.0.