---
name: "tep_parse_format"
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_parse_event"
---

# tep\_parse\_format(3)

Parse the event format information

Part of [tep\_parse\_event(3)](/tep_parse_event/3.md).

## NAME

tep\_parse\_event, tep\_parse\_format - Parse the event format information

## SYNOPSIS

```
#include <event-parse.h>
enum tep_errno tep_parse_event(struct tep_handle *tep, const char *buf, unsigned long size, const char *sys);
enum tep_errno tep_parse_format(struct tep_handle *tep, struct tep_event **eventp, const char *buf, unsigned long size, const char *sys);
```

## DESCRIPTION

The **tep\_parse\_event()** function parses the event format and creates an event structure to quickly parse raw data for a given event. The *tep* argument is the trace event parser context. The created event structure is stored in the *tep* context. The *buf* argument is a buffer with *size*, where the event format data is. The event format data can be taken from tracefs/events/.../.../format files. The *sys* argument is the system of the event.

The **tep\_parse\_format()** function does the same as **tep\_parse\_event()**. The only difference is in the extra *eventp* argument, where the newly created event structure is returned.

## RETURN VALUE

Both **tep\_parse\_event()** and **tep\_parse\_format()** functions return 0 on success, or TEP\_ERRNO\_\_... in case of an error.

## EXAMPLE

```
#include <event-parse.h>
...
struct tep_handle *tep = tep_alloc();
...
char *buf;
int size;
struct tep_event *event = NULL;
buf = read_file("/sys/kernel/tracing/events/ftrace/print/format", &size);
if (tep_parse_event(tep, buf, size, "ftrace") != 0) {
        /* Failed to parse the ftrace print format */
}
if (tep_parse_format(tep, &event, buf, size, "ftrace") != 0) {
        /* Failed to parse the ftrace print format */
}
...
```

## 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
