diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /upstream/debian-unstable/man3/sd_journal_query_unique.3 | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/debian-unstable/man3/sd_journal_query_unique.3')
-rw-r--r-- | upstream/debian-unstable/man3/sd_journal_query_unique.3 | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/upstream/debian-unstable/man3/sd_journal_query_unique.3 b/upstream/debian-unstable/man3/sd_journal_query_unique.3 new file mode 100644 index 00000000..bfedb59c --- /dev/null +++ b/upstream/debian-unstable/man3/sd_journal_query_unique.3 @@ -0,0 +1,231 @@ +'\" t +.TH "SD_JOURNAL_QUERY_UNIQUE" "3" "" "systemd 255" "sd_journal_query_unique" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_enumerate_available_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE \- Read unique data fields from the journal +.SH "SYNOPSIS" +.sp +.ft B +.nf +#include <systemd/sd\-journal\&.h> +.fi +.ft +.HP \w'int\ sd_journal_query_unique('u +.BI "int sd_journal_query_unique(sd_journal\ *" "j" ", const\ char\ *" "field" ");" +.HP \w'int\ sd_journal_enumerate_available_unique('u +.BI "int sd_journal_enumerate_available_unique(sd_journal\ *" "j" ", const\ void\ **" "data" ", size_t\ *" "length" ");" +.HP \w'int\ sd_journal_enumerate_unique('u +.BI "int sd_journal_enumerate_unique(sd_journal\ *" "j" ", const\ void\ **" "data" ", size_t\ *" "length" ");" +.HP \w'void\ sd_journal_restart_unique('u +.BI "void sd_journal_restart_unique(sd_journal\ *" "j" ");" +.HP \w'SD_JOURNAL_FOREACH_UNIQUE('u +.BI "SD_JOURNAL_FOREACH_UNIQUE(sd_journal\ *" "j" ", const\ void\ *" "data" ", size_t\ " "length" ");" +.SH "DESCRIPTION" +.PP +\fBsd_journal_query_unique()\fR +queries the journal for all unique values the specified field can take\&. It takes two arguments: the journal to query and the field name to look for\&. Well\-known field names are listed on +\fBsystemd.journal-fields\fR(7), but any field can be specified\&. Field names must be specified without a trailing +"="\&. After this function has been executed successfully the field values may be queried using +\fBsd_journal_enumerate_unique()\fR +and +\fBsd_journal_enumerate_available_unique()\fR\&. Invoking one of those calls will change the field name being queried and reset the enumeration index to the first field value that matches\&. +.PP +\fBsd_journal_enumerate_unique()\fR +may be used to iterate through all data fields which match the previously selected field name as set with +\fBsd_journal_query_unique()\fR\&. On each invocation the next field data matching the field name is returned\&. The order of the returned data fields is not defined\&. It takes three arguments: the journal object, plus a pair of pointers to pointer/size variables where the data object and its size shall be stored\&. The returned data is in a read\-only memory map and is only valid until the next invocation of +\fBsd_journal_enumerate_unique()\fR\&. Note that the data returned will be prefixed with the field name and +"="\&. Note that this call is subject to the data field size threshold as controlled by +\fBsd_journal_set_data_threshold()\fR +and only the initial part of the field up to the threshold is returned\&. An error is returned for fields which cannot be retrieved\&. See the error list below for details\&. +.PP +\fBsd_journal_enumerate_available_unique()\fR +is similar to +\fBsd_journal_enumerate_unique()\fR, but silently skips any fields which may be valid, but are too large or not supported by current implementation\&. +.PP +\fBsd_journal_restart_unique()\fR +resets the data enumeration index to the beginning of the list\&. The next invocation of +\fBsd_journal_enumerate_unique()\fR +will return the first field data matching the field name again\&. +.PP +Note that the +\fBSD_JOURNAL_FOREACH_UNIQUE()\fR +macro may be used as a handy wrapper around +\fBsd_journal_restart_unique()\fR +and +\fBsd_journal_enumerate_available_unique()\fR\&. +.PP +Note that these functions currently are not influenced by matches set with +\fBsd_journal_add_match()\fR +but this might change in a later version of this software\&. +.PP +To enumerate all field names currently in use (and thus all suitable field parameters for +\fBsd_journal_query_unique()\fR), use the +\fBsd_journal_enumerate_fields\fR(3) +call\&. +.SH "RETURN VALUE" +.PP +\fBsd_journal_query_unique()\fR +returns 0 on success or a negative errno\-style error code\&. +\fBsd_journal_enumerate_unique()\fR +and +\fBsd_journal_query_available_unique()\fR +return a positive integer if the next field data has been read, 0 when no more fields remain, or a negative errno\-style error code\&. +\fBsd_journal_restart_unique()\fR +doesn\*(Aqt return anything\&. +.SS "Errors" +.PP +Returned errors may indicate the following problems: +.PP +\fB\-EINVAL\fR +.RS 4 +One of the required parameters is +\fBNULL\fR +or invalid\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-ECHILD\fR +.RS 4 +The journal object was created in a different process, library or module instance\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-EADDRNOTAVAIL\fR +.RS 4 +The read pointer is not positioned at a valid entry; +\fBsd_journal_next\fR(3) +or a related call has not been called at least once\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-ENOENT\fR +.RS 4 +The current entry does not include the specified field\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-ENOBUFS\fR +.RS 4 +A compressed entry is too large\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-E2BIG\fR +.RS 4 +The data field is too large for this computer architecture (e\&.g\&. above 4 GB on a 32\-bit architecture)\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-EPROTONOSUPPORT\fR +.RS 4 +The journal is compressed with an unsupported method or the journal uses an unsupported feature\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-EBADMSG\fR +.RS 4 +The journal is corrupted (possibly just the entry being iterated over)\&. +.sp +Added in version 246\&. +.RE +.PP +\fB\-EIO\fR +.RS 4 +An I/O error was reported by the kernel\&. +.sp +Added in version 246\&. +.RE +.SH "NOTES" +.PP +All functions listed here are thread\-agnostic and only a single specific thread may operate on a given object during its entire lifetime\&. It\*(Aqs safe to allocate multiple independent objects and use each from a specific thread in parallel\&. However, it\*(Aqs not safe to allocate such an object in one thread, and operate or free it from any other, even if locking is used to ensure these threads don\*(Aqt operate on it at the very same time\&. +.PP +Functions described here are available as a shared library, which can be compiled against and linked to with the +\fBlibsystemd\fR\ \&\fBpkg-config\fR(1) +file\&. +.SH "EXAMPLES" +.PP +Use the +\fBSD_JOURNAL_FOREACH_UNIQUE()\fR +macro to iterate through all values a field of the journal can take (and which can be accessed on the given architecture and are not compressed with an unsupported mechanism)\&. The following example lists all unit names referenced in the journal: +.sp +.if n \{\ +.RS 4 +.\} +.nf +/* SPDX\-License\-Identifier: MIT\-0 */ + +#include <errno\&.h> +#include <stdio\&.h> +#include <systemd/sd\-journal\&.h> + +int main(int argc, char *argv[]) { + sd_journal *j; + const void *d; + size_t l; + int r; + + r = sd_journal_open(&j, SD_JOURNAL_LOCAL_ONLY); + if (r < 0) { + errno = \-r; + fprintf(stderr, "Failed to open journal: %m\en"); + return 1; + } + r = sd_journal_query_unique(j, "_SYSTEMD_UNIT"); + if (r < 0) { + errno = \-r; + fprintf(stderr, "Failed to query journal: %m\en"); + return 1; + } + SD_JOURNAL_FOREACH_UNIQUE(j, d, l) + printf("%\&.*s\en", (int) l, (const char*) d); + sd_journal_close(j); + return 0; +} +.fi +.if n \{\ +.RE +.\} +.SH "HISTORY" +.PP +\fBsd_journal_query_unique()\fR, +\fBsd_journal_enumerate_unique()\fR, +\fBsd_journal_restart_unique()\fR, and +\fBSD_JOURNAL_FOREACH_UNIQUE()\fR +were added in version 195\&. +.PP +\fBsd_journal_enumerate_available_unique()\fR +was added in version 246\&. +.SH "SEE ALSO" +.PP +\fBsystemd\fR(1), +\fBsystemd.journal-fields\fR(7), +\fBsd-journal\fR(3), +\fBsd_journal_open\fR(3), +\fBsd_journal_enumerate_fields\fR(3), +\fBsd_journal_get_data\fR(3), +\fBsd_journal_add_match\fR(3) |