---
name: "tep_get_any_field_val"
section: "3"
platform: "linux"
package: "libtraceevent"
version: "1:1.9.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/tep_get_any_field_val"
---

# tep\_get\_any\_field\_val(3)

Get value of a field.

## NAME

tep\_get\_any\_field\_val, tep\_get\_common\_field\_val, tep\_get\_field\_val, tep\_get\_field\_raw - Get value of a field.

## SYNOPSIS

```
#include <event-parse.h>
#include <trace-seq.h>
int tep_get_any_field_val(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, unsigned long long *val, int err);
int tep_get_common_field_val(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, unsigned long long *val, int err);
int tep_get_field_val(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, unsigned long long *val, int err);
void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record, int *len, int err);
```

## DESCRIPTION

These functions can be used to find a field and retrieve its value.

The **tep\_get\_any\_field\_val()** function searches in the *record* for a field with *name*, part of the *event*. If the field is found, its value is stored in *val*. If there is an error and *err* is not zero, then an error string is written into *s*.

The **tep\_get\_common\_field\_val()** function does the same as **tep\_get\_any\_field\_val()**, but searches only in the common fields. This works for any event as all events include the common fields.

The **tep\_get\_field\_val()** function does the same as **tep\_get\_any\_field\_val()**, but searches only in the event specific fields.

The **tep\_get\_field\_raw()** function searches in the *record* for a field with *name*, part of the *event*. If the field is found, a pointer to where the field exists in the record’s raw data is returned. The size of the data is stored in *len*. If there is an error and *err* is not zero, then an error string is written into *s*.

## RETURN VALUE

The **tep\_get\_any\_field\_val()**, **tep\_get\_common\_field\_val()** and **tep\_get\_field\_val()** functions return 0 on success, or -1 in case of an error.

The **tep\_get\_field\_raw()** function returns a pointer to field’s raw data, and places the length of this data in *len*. In case of an error NULL is returned.

## EXAMPLE

```
#include <event-parse.h>
#include <trace-seq.h>
...
struct tep_handle *tep = tep_alloc();
...
struct tep_event *event = tep_find_event_by_name(tep, "kvm", "kvm_exit");
...
void process_record(struct tep_record *record)
{
        int len;
        char *comm;
        struct tep_event *event;
        unsigned long long val;
        event = tep_find_event_by_record(tep, record);
        if (event != NULL) {
                if (tep_get_common_field_val(NULL, event, "common_type",
                                             record, &val, 0) == 0) {
                        /* Got the value of common type field */
                }
                if (tep_get_field_val(NULL, event, "pid", record, &val, 0) == 0) {
                        /* Got the value of pid specific field */
                }
                comm = tep_get_field_raw(NULL, event, "comm", record, &len, 0);
                if (comm != NULL) {
                        /* Got a pointer to the comm event specific field */
                }
        }
}
```

## FILES

```
event-parse.h
        Header file to include in order to have access to the library APIs.
trace-seq.h
        Header file to include in order to have access to trace sequences
        related APIs. Trace sequences are used to allow a function to call
        several other functions to create a string of data to use.
-ltraceevent
        Linker switch to add when building a program that uses the library.
```

## SEE ALSO

[**libtraceevent**(3)](/libtraceevent/3.md), [**trace-cmd**(1)](/trace-cmd/1.md)

## AUTHOR

```
Steven Rostedt <rostedt@goodmis.org[1]>, author of libtraceevent.
Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>, author of this man page.
```

## REPORTING BUGS

Report bugs to \<**linux-trace-devel@vger.kernel.org**\[3\]\>

## LICENSE

libtraceevent is Free Software licensed under the GNU LGPL 2.1

## RESOURCES

**https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/**

## NOTES

- 1\.

  rostedt@goodmis.org

  mailto:rostedt@goodmis.org

- 2\.

  tz.stoyanov@gmail.com

  mailto:tz.stoyanov@gmail.com

- 3\.

  linux-trace-devel@vger.kernel.org

  mailto:linux-trace-devel@vger.kernel.org
