Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sd_id128_t(3) [centos man page]

SD-ID128(3)							     sd-id128							       SD-ID128(3)

NAME
sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal - APIs for processing 128-bit IDs SYNOPSIS
#include <systemd/sd-id128.h> pkg-config --cflags --libs libsystemd-id128 DESCRIPTION
sd-id128.h provides APIs to process and generate 128-bit ID values. The 128-bit ID values processed and generated by these APIs are a generalization of OSF UUIDs as defined by RFC 4122[1] but use a simpler string format. These functions impose no structure on the used IDs, much unlike OSF UUIDs or Microsoft GUIDs, but are fully compatible with those types of IDs. See sd_id128_to_string(3), sd_id128_randomize(3) and sd_id128_get_machine(3) for more information about the implemented functions. A 128-bit ID is implemented as the following union type: typedef union sd_id128 { uint8_t bytes[16]; uint64_t qwords[2]; } sd_id128_t; This union type allows accessing the 128-bit ID as 16 separate bytes or two 64-bit words. It is generally safer to access the ID components by their 8-bit array to avoid endianness issues. This union is intended to be passed call-by-value (as opposed to call-by-reference) and may be directly manipulated by clients. A couple of macros are defined to denote and decode 128-bit IDs: SD_ID128_MAKE() may be used to denote a constant 128-bit ID in source code. A commonly used idiom is to assign a name to a 128-bit ID using this macro: #define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1) SD_ID128_CONST_STR() may be used to convert constant 128-bit IDs into constant strings for output. The following example code will output the string "fc2e22bc6ee647b6b90729ab34a250b1": int main(int argc, char *argv[]) { puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP)); } SD_ID128_FORMAT_STR and SD_ID128_FORMAT_VAL() may be used to format a 128-bit ID in a printf(3) format string, as shown in the following example: int main(int argc, char *argv[]) { sd_id128_t id; id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07); printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ". ", SD_ID128_FORMAT_VAL(id)); return 0; } Use sd_id128_equal() to compare two 128-bit IDs: int main(int argc, char *argv[]) { sd_id128_t a, b, c; a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07); b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e); c = a; assert(sd_id128_equal(a, c)); assert(!sd_id128_equal(a, b)); return 0; } Note that new, randomized IDs may be generated with journalctl(1)'s --new-id option. NOTES
These APIs are implemented as a shared library, which can be compiled and linked to with the "libsystemd-id128" pkg-config(1) file. SEE ALSO
systemd(1), sd_id128_to_string(3), sd_id128_randomize(3), sd_id128_get_machine(3), printf(3), journalctl(1), sd-journal(7), pkg-config(1), machine-id(5) NOTES
1. RFC 4122 https://tools.ietf.org/html/rfc4122 systemd 208 SD-ID128(3)

Check Out this Related Man Page

SD_JOURNAL_GET_CUTOFF_REALTIME_USEC(3)			sd_journal_get_cutoff_realtime_usec		    SD_JOURNAL_GET_CUTOFF_REALTIME_USEC(3)

NAME
sd_journal_get_cutoff_realtime_usec, sd_journal_get_cutoff_monotonic_usec - Read cut-off timestamps from the current journal entry SYNOPSIS
#include <systemd/sd-journal.h> int sd_journal_get_cutoff_realtime_usec(sd_journal* j, uint64_t* from, uint64_t* to); int sd_journal_get_cutoff_monotonic_usec(sd_journal* j, sd_id128_t boot_id, uint64_t* from, uint64_t* to); DESCRIPTION
sd_journal_get_cutoff_realtime_usec() gets the realtime (wallclock) timestamps of the first and last entries accessible in the journal. It takes three arguments: the journal context object and two pointers to 64-bit unsigned integers to store the timestamps in. The timestamps are in microseconds since the epoch, i.e. CLOCK_REALTIME. Either one of the two timestamp arguments may be passed as NULL in case the timestamp is not needed, but not both. sd_journal_get_cutoff_monotonic_usec() gets the monotonic timestamps of the first and last entries accessible in the journal. It takes three arguments: the journal context object, a 128-bit identifier for the boot, and two pointers to 64-bit unsigned integers to store the timestamps. The timestamps are 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) for more information. The function will return the timestamps for the boot identified by the passed boot ID. Either one of the two timestamp arguments may be passed as NULL in case the timestamp is not needed, but not both. RETURN VALUE
sd_journal_get_cutoff_realtime_usec() and sd_journal_get_cutoff_monotonic_usec() return 1 on success, 0 if not suitable entries are in the journal or a negative errno-style error code. NOTES
The sd_journal_get_cutoff_realtime_usec() and sd_journal_get_cutoff_monotonic_usec() interfaces are available as a shared library, which can be compiled and linked to with the libsystemd-journal pkg-config(1) file. SEE ALSO
systemd(1), sd-journal(3), sd_journal_open(3), sd_journal_get_realtime_usec(3), sd_id128_get_boot(3), clock_gettime(2) systemd 208 SD_JOURNAL_GET_CUTOFF_REALTIME_USEC(3)
Man Page