GETLASTLOGX(3) | Library Functions Manual | GETLASTLOGX(3)

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

August 26, 2003 | NetBSD 9.2