LIBTRACEEVENT(3)

πŸ’– LIBTRACEEVENT(3) β€” the libtraceevent manual, bestie edition πŸ’–

okay so this is the libtraceevent manual page, and I'm literally so excited to walk you through it. no cap, this one's short and sweet, and it's giving "three little functions that hand you your events" energy. let's go πŸ¦‹


✨ NAME ✨

tep_get_event, tep_get_first_event, tep_get_events_count β€” Access events.

(yes that's the whole name section. they access events. iconic behavior honestly πŸ’…)


✨ SYNOPSIS ✨

#include <event-parse.h>

struct tep_event *tep_get_event(struct tep_handle *tep, int index);
struct tep_event *tep_get_first_event(struct tep_handle *tep);
int tep_get_events_count(struct tep_handle *tep);

look at those signatures. so clean. so simple. we love a consistent API 🫢


✨ DESCRIPTION ✨

so basically there are three functions here and they're all about getting at the events your parser context is holding. here's the tea:

The tep_get_event() function returns a pointer to the event at the given index. The tep argument is the trace event parser context, and the index is the index of the event you're asking for. (like, "give me event number three please" πŸŽ€)

The tep_get_first_event() function returns a pointer to the first event. Since events are stored in an array, this function returns the pointer to the beginning of the array. The tep argument is the trace event parser context. main character of the array tbh πŸ‘‘

The tep_get_events_count() function returns the number of the events in the array. The tep argument is the trace event parser context.

ngl the whole design here is "there's an array, here's how you get in it." that's it. that's the vibe.

✨ RETURN VALUE ✨

  • The tep_get_event() returns a pointer to the event located at index. NULL is returned in case of error, in case there are no events, or index is out of range. 😭
  • The tep_get_first_event() returns a pointer to the first event. NULL is returned in case of error, or in case there are no events.
  • The tep_get_events_count() returns the number of the events. 0 is returned in case of error, or in case there are no events.
bestie pls always check your pointers for NULL and your counts for 0 before you go blazing through the array. fr fr. safety first, slay always πŸ’…

✨ EXAMPLE ✨

here's how it actually looks in the wild:

#include <event-parse.h>
...
struct tep_handle *tep = tep_alloc();
...
int i,count = tep_get_events_count(tep);
struct tep_event *event, *events = tep_get_first_event(tep);

if (events == NULL) {
        /* There are no events */
} else {
        for (i = 0; i < count; i++) {
                event = (events+i);
                /* process events[i] */
        }

        /* Get the last event */
        event = tep_get_event(tep, count-1);
}

see the little check for NULL right at the top? chef's kiss. that's the move. and then count-1 gets you the last event, because array math is just like that. the way this walks the whole array and then dips back for the final one… obsessed πŸ“


✨ FILES ✨

  • event-parse.h β€” the header file you include in order to have access to the library APIs. don't forget her, she's the whole door πŸšͺ✨
  • -ltraceevent β€” the linker switch you add when building a program that uses the library.

✨ SEE ALSO ✨

go read those too, they're the extended universe 🌈


✨ AUTHOR ✨

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

thank you for your service, kings πŸ«‘πŸ’œ


✨ REPORTING BUGS ✨

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

(found something cursed? tell the mailing list, not the void 🌸)


✨ 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

and that's the whole page, bestie!! this was libtraceevent 1.9.0, dated 06/15/2026, and you just read it front to back like the icon you are. periodt πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…

πŸ“¦ where this page comes from