Other Alias
sd_journal_restart_fields, SD_JOURNAL_FOREACH_FIELDSYNOPSIS
#include <systemd/sd-journal.h>
-
int sd_journal_enumerate_fields(sd_journal *j, const char **field);
- void sd_journal_restart_fields(sd_journal *j);
- SD_JOURNAL_FOREACH_FIELD(sd_journal *j, const char *field);
- void sd_journal_restart_fields(sd_journal *j);
DESCRIPTION
sd_journal_enumerate_fields()
sd_journal_restart_fields() resets the field name enumeration index to the beginning of the list. The next invocation of sd_journal_enumerate_fields() will return the first field name again.
The SD_JOURNAL_FOREACH_FIELD() macro may be used as a handy wrapper around sd_journal_restart_fields() and sd_journal_enumerate_fields().
These functions currently are not influenced by matches set with sd_journal_add_match() but this might change in a later version of this software.
To retrieve the possible values a specific field can take use sd_journal_query_unique(3).
RETURN VALUE
sd_journal_enumerate_fields() returns a positive integer if the next field name has been read, 0 when no more field names are known, or a negative errno-style error code. sd_journal_restart_fields() returns nothing.
NOTES
The sd_journal_enumerate_fields() and sd_journal_restart_fields() interfaces are available as a shared library, which can be compiled and linked to with the libsystemd pkg-config(1) file.
EXAMPLES
Use the SD_JOURNAL_FOREACH_FIELD macro to iterate through all field names in use in the current journal.
-
#include <stdio.h> #include <string.h> #include <systemd/sd-journal.h> int main(int argc, char *argv[]) { sd_journal *j; const char *field; int r; r = sd_journal_open(&j, SD_JOURNAL_LOCAL_ONLY); if (r < 0) { fprintf(stderr, "Failed to open journal: %s\n", strerror(-r)); return 1; } SD_JOURNAL_FOREACH_FIELD(j, field) printf("%s\n", field); sd_journal_close(j); return 0; }