August 26, 2003 GETLASTLOGX 3

### NAME

getlastlogx, getutmp, getutmpx, updlastlogx, updwtmpx, utmpxname - user accounting database functions

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```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 NetBSD2.0.