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

# tracefs\_binary\_init(3)

Open, close and write binary data in the trace buffer.

## NAME

tracefs\_binary\_init, tracefs\_binary\_close, tracefs\_binary\_write - Open, close and write binary data in the trace buffer.

## SYNOPSIS

```
#include <tracefs.h>
int tracefs_binary_init(struct tracefs_instance *instance);
int tracefs_binary_write(struct tracefs_instance *instance, void *data, int len);
void tracefs_binary_close(struct tracefs_instance *instance);
```

## DESCRIPTION

Set of functions to write binary data in the trace buffer. See Documentation/trace/ftrace.rst from the Linux kernel tree for more information about writing data from user space in the trace buffer. All these APIs have *instance* as a first argument. If NULL is passed as *instance*, the top trace instance is used.

The **tracefs\_binary\_init()** function initializes the library for writing into the trace buffer of the selected *instance*. It is not mandatory to call this API before writing data, the **tracefs\_binary\_write()** will call it automatically, if the library is not yet initialized. But calling **tracefs\_binary\_init()** in advance will speed up the writing.

The **tracefs\_binary\_write()** function writes a binary data in the trace buffer of the selected *instance*. The *data* points to the data with length *len*, that is going to be written in the trace buffer.

The **tracefs\_binary\_close()** function closes the resources, used by the library for writing in the trace buffer of the selected instance.

## RETURN VALUE

The **tracefs\_binary\_init()**, and **tracefs\_binary\_write()** functions return 0 if the operation is successful, or -1 in case of an error.

## EXAMPLE

```
#include <tracefs.h>
if (tracefs_binary_init(NULL) < 0) {
 /* Failed to initialize the library for writing in the trace buffer of the top trace instance */
}
unsigned int data = 0xdeadbeef;
        if (tracefs_binary_write(NULL, &data, sizeof(data)) < 0) {
                /* Failed to write in the trace buffer */
        }
tracefs_binary_close();
```

## FILES

```
tracefs.h
        Header file to include in order to have access to the library APIs.
-ltracefs
        Linker switch to add when building a program that uses the library.
```

## SEE ALSO

[**libtracefs**(3)](/libtracefs/3.md), [**libtraceevent**(3)](/libtraceevent/3.md), [**trace-cmd**(1)](/trace-cmd/1.md), Documentation/trace/ftrace.rst from the Linux kernel tree

## AUTHOR

```
Steven Rostedt <rostedt@goodmis.org[1]>
Tzvetomir Stoyanov <tz.stoyanov@gmail.com[2]>
```

## REPORTING BUGS

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

## LICENSE

libtracefs is Free Software licensed under the GNU LGPL 2.1

## RESOURCES

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

## COPYING

Copyright (C) 2021 VMware, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).

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