---
name: "sd_journal_get_realtime_usec"
section: "3"
platform: "linux"
package: "systemd-libs"
version: "262.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/sd_journal_get_realtime_usec"
---

# sd\_journal\_get\_realtime\_usec(3)

Read timestamps from the current journal entry

## NAME

sd\_journal\_get\_realtime\_usec, sd\_journal\_get\_monotonic\_usec - Read timestamps from the current journal entry

## SYNOPSIS

```
#include <systemd/sd-journal.h>
```

**int sd\_journal\_get\_realtime\_usec(sd\_journal \****j***, uint64\_t \****usec***);**

**int sd\_journal\_get\_monotonic\_usec(sd\_journal \****j***, uint64\_t \****usec***, sd\_id128\_t \****boot\_id***);**

## DESCRIPTION

**sd\_journal\_get\_realtime\_usec()** gets the realtime (wallclock) timestamp of the current journal entry. It takes two arguments: the journal context object and a pointer to a 64-bit unsigned integer to store the timestamp in. The timestamp is in microseconds since the epoch, i.e. **CLOCK\_REALTIME**.

**sd\_journal\_get\_monotonic\_usec()** gets the monotonic timestamp of the current journal entry. It takes three arguments: the journal context object, a pointer to a 64-bit unsigned integer to store the timestamp in, as well as a 128-bit ID buffer to store the boot ID of the monotonic timestamp. The timestamp is in microseconds since boot-up of the specific boot, i.e. **CLOCK\_MONOTONIC**. Since the monotonic clock begins new with every reboot, it only defines a well-defined point in time when used together with an identifier identifying the boot. See [**sd\_id128\_get\_boot**(3)](/sd_id128_get_boot/3.md) for more information. If the boot ID parameter is passed **NULL**, the function will fail if the monotonic timestamp of the current entry is not of the current system boot.

Note that these functions will not work before [**sd\_journal\_next**(3)](/sd_journal_next/3.md) (or related call) has been called at least once, in order to position the read pointer at a valid entry.

## RETURN VALUE

**sd\_journal\_get\_realtime\_usec()** and **sd\_journal\_get\_monotonic\_usec()** returns 0 on success or a negative errno-style error code. If the boot ID parameter was passed **NULL** and the monotonic timestamp of the current journal entry is not of the current system boot, **-ESTALE** is returned by **sd\_journal\_get\_monotonic\_usec()**.

## NOTES

All functions listed here are thread-agnostic and only a single thread may operate on a given object at any given time. Different threads may access the same object at different times. Multiple independent objects may be used from different threads in parallel.

Functions described here are available as a shared library, which can be compiled against and linked to with the **libsystemd** [**pkg-config**(1)](/pkg-config/1.md) file.

## HISTORY

**sd\_journal\_get\_realtime\_usec()** and **sd\_journal\_get\_monotonic\_usec()** were added in version 187.

## SEE ALSO

[**systemd**(1)](/systemd/1.md), [**sd-journal**(3)](/sd-journal/3.md), [**sd\_journal\_open**(3)](/sd_journal_open/3.md), [**sd\_journal\_next**(3)](/sd_journal_next/3.md), [**sd\_journal\_get\_data**(3)](/sd_journal_get_data/3.md), [**sd\_journal\_get\_seqnum**(3)](/sd_journal_get_seqnum/3.md), [**sd\_id128\_get\_boot**(3)](/sd_id128_get_boot/3.md), [**clock\_gettime**(2)](/clock_gettime/2.md), [**sd\_journal\_get\_cutoff\_realtime\_usec**(3)](/sd_journal_get_cutoff_realtime_usec/3.md)
