LIBTRACEFS(3)

NAME
tracefs_get_tracing_file, tracefs_put_tracing_file, tracefs_tracing_dir, tracefs_debug_dir - Find locations of trace directory and files.

SYNOPSIS

#include <tracefs.h>
char *tracefs_get_tracing_file(const char *name);
void tracefs_put_tracing_file(char *name);
const char *tracefs_tracing_dir(void);
const char *tracefs_debug_dir(void);

DESCRIPTION

This set of APIs can be used to find the full path of the trace file system mount point and trace files in it.

The tracefs_get_tracing_file() function returns the full path of the file with given name in the trace file system. The function works only with files in the tracefs main directory, it is not trace instance aware. It is recommended to use tracefs_instance_get_file() and tracefs_instance_get_dir() instead. The returned string must be freed with tracefs_put_tracing_file().

The tracefs_put_tracing_file() function frees trace file name, returned by tracefs_get_tracing_file().

The tracefs_tracing_dir() function returns the full path to the trace file system. In the first function call, the mount point of the tracing file system is located, cached and returned. It will mount it, if it is not mounted. On any subsequent call the cached path is returned. The return string must not be freed.

The tracefs_debug_dir() is similar to tracefs_tracing_dir() except that it will return where the debugfs file system is mounted. If it is not mounted it will try to mount it. The return string must not be freed.

RETURN VALUE

The tracefs_get_tracing_file() function returns a string or NULL in case of an error. The returned string must be freed with tracefs_put_tracing_file().

The tracefs_tracing_dir() function returns a constant string or NULL in case of an error. The returned string must not be freed.

The tracefs_debug_dir() function returns a constant string or NULL in case of an error. The returned string must not be freed.

EXAMPLE

    #include <tracefs.h>
    ...
    char *trace_on = tracefs_get_tracing_file("tracing_on");
            if (trace_on) {
                    ...
                    tracefs_put_tracing_file(trace_on);
            }
    ...
    const char *trace_dir = tracefs_tracing_dir();

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), libtraceevent(3), trace-cmd(1)

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) 2020 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