LL2\_READ\_ALL(3) Programmers Manual LL2\_READ\_ALL(3)

# [NAME](#NAME)

ll2\_read\_all - Reads all entries from database and calls the callback function for each entry.

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;lastlog2.h&gt;** **int ll2\_read\_all (struct ll2\_context \*context,** **int (\*callback)(const char \*user, int64\_t ll\_time,** **const char \*tty, const char \*rhost,** **const char \*pam\_service, const char \*cb\_error),** **char \*\*error);**

# [DESCRIPTION](#DESCRIPTION)

Reads all entries from database, defined in *context*, and calls callback function *callback* for each entry. If *context* is NULL, the default database, defined in *LL2\_DEFAULT\_DATABASE*, will be taken.

```
char  *error = NULL;
const char *user = "root";
static int
callback (const char *res_user, int64_t ll_time, const char *res_tty,


          const char *res_rhost, const char *res_service, const char *cb_error)
{


   /* returning != 0 if no further entry has to be handled by the callback */


   return 0;
}
int ret = ll2_read_all (NULL, callback, &error);
```

# [RETURN VALUE](#RETURN_VALUE)

Returns 0 on success, -ENOMEM or -1 on other failure. *error* contains an error string if the return value is -1. *error* is not guaranteed to contain an error string, could also be NULL. *error* should be freed by the caller. If lastlog2 database does not exist at all, the errno ENOENT is set and can be checked.

# [AUTHORS](#AUTHORS)

*Thorsten Kukuk* &lt;kukuk@suse.de&gt;

# [SEE ALSO](#SEE_ALSO)

[**lastlog2**(3)](/man/os/util-linux/lastlog2.3), [**ll2\_new\_context**(3)](/man/os/util-linux/ll2_new_context.3), [**ll2\_unref\_context**(3)](/man/os/util-linux/ll2_unref_context.3), [**ll2\_write\_entry**(3)](/man/os/util-linux/ll2_write_entry.3), [**ll2\_read\_entry**(3)](/man/os/util-linux/ll2_read_entry.3), [**ll2\_update\_login\_time**(3)](/man/os/util-linux/ll2_update_login_time.3), [**ll2\_remove\_entry**(3)](/man/os/util-linux/ll2_remove_entry.3), [**ll2\_rename\_user**(3)](/man/os/util-linux/ll2_rename_user.3), [**ll2\_import\_lastlog**(3)](/man/os/util-linux/ll2_import_lastlog.3)

# [REPORTING BUGS](#REPORTING_BUGS)

For bug reports, use the *issue tracker* &lt;https://github.com/util-linux/util-linux/issues&gt;.

# [AVAILABILITY](#AVAILABILITY)

The **liblastlog2** library is part of the util-linux package since version 2.40. It can be downloaded from *Linux Kernel Archive* &lt;https://www.kernel.org/pub/linux/utils/util-linux/&gt;.

2026-10-30 util-linux 2.42.4

---

Document: ll2_read_all(3) from util-linux 2.42.4-r2 (Chainguard OS)
