---
name: "tep_find_event_by_name"
section: "3"
platform: "linux"
package: "libtraceevent-doc"
version: "1:1.8.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/tep_find_event"
---

# tep\_find\_event\_by\_name(3)

Find events by given key.

Part of [tep\_find\_event(3)](/tep_find_event/3.md).

## NAME

tep\_find\_event, tep\_find\_event\_by\_name, tep\_find\_event\_by\_record, tep\_record\_is\_event - Find events by given key.

## SYNOPSIS

```
#include <event-parse.h>
struct tep_event *tep_find_event(struct tep_handle *tep, int id);
struct tep_event *tep_find_event_by_name(struct tep_handle *tep, const char *sys, const char *name);
struct tep_event *tep_find_event_by_record(struct tep_handle *tep, struct tep_record *record);
bool tep_record_is_event(struct tep_record *record, struct tep_event *event);
```

## DESCRIPTION

This set of functions can be used to search for an event, based on a given criteria. All functions require a pointer to a *tep*, trace event parser context.

The **tep\_find\_event()** function searches for an event by given event *id*. The event ID is assigned dynamically and can be viewed in event’s format file, "ID" field.

The **tep\_find\_event\_by\_name()** function searches for an event by given event *name*, under the system *sys*. If the *sys* is NULL (not specified), the first event with *name* is returned.

The **tep\_find\_event\_by\_record()** function searches for an event from a given *record*.

The **tep\_record\_is\_event()** function tests if the given *record* is of the type of the *event*. This is normally used to know if the *record* being processed is of an *event* where further processing should be done.

## RETURN VALUE

All these functions except **tep\_record\_is\_event()** return a pointer to the found event, or NULL if there is no such event.

## EXAMPLE

```
#include <event-parse.h>
...
struct tep_handle *tep = tep_alloc();
...
struct tep_event *event;
event = tep_find_event(tep, 1857);
if (event == NULL) {
        /* There is no event with ID 1857 */
}
event = tep_find_event_by_name(tep, "kvm", "kvm_exit");
if (event == NULL) {
        /* There is no kvm_exit event, from kvm system */
}
void event_from_record(struct tep_record *record)
{
 struct tep_event *event = tep_find_event_by_record(tep, record);
        if (event == NULL) {
                /* There is no event from given record */
        }
}
...
```

## FILES

```
event-parse.h
        Header file to include in order to have access to the library APIs.
-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
