tracefs_get_tracing_file(3) — Linux manual page
LIBTRACEFS(3) libtracefs Manual LIBTRACEFS(3)
NAME
tracefs_get_tracing_file, tracefs_put_tracing_file,
tracefs_tracing_dir, tracefs_debug_dir, tracefs_set_tracing_dir,
tracefs_tracing_dir_is_mounted - Find and set 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);
int tracefs_set_tracing_dir(char *tracing_dir)
int tracefs_tracing_dir_is_mounted(bool mount, const char **path);
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_set_tracing_dir() function sets a custom location of
the system’s tracing directory mount point. Usually, the library
auto detects it using the information from the /proc/mounts file.
Use this API only if the mount point is not standard and cannot
be detected by the library. The tracing_dir argument can be NULL,
in that case the custom location is deleted and the library auto
detection logic is used.
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.
tracefs_tracing_dir_is_mounted() returns 1 if the tracing
directory is already mounted and 0 if it is not. If mount is
true, it will try to mount it if it is not, and returns 0 if it
succesfully mounted it and -1 if it did not. If path is set, it
will be assigned to the path where it mounted it. path is
internal and should not be freed.
RETURN VALUE
The tracefs_set_tracing_dir() function returns 0 on success, -1
otherwise.
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.
The tracefs_tracing_dir_is_mounted() returns 1 if the tracing
directory is already mounted, 0 if it is not, and -1 on error.
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
COLOPHON
This page is part of the libtracefs (Linux kernel trace file
system library) project. Information about the project can be
found at ⟨https://www.trace-cmd.org/⟩. If you have a bug report
for this manual page, see ⟨https://www.trace-cmd.org/⟩. This
page was obtained from the project's upstream Git repository
⟨https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git⟩ on
2024-06-14. (At that time, the date of the most recent commit
that was found in the repository was 2024-05-17.) If you
discover any rendering problems in this HTML version of the page,
or you believe there is a better or more up-to-date source for
the page, or you have corrections or improvements to the
information in this COLOPHON (which is not part of the original
manual page), send a mail to man-pages@man7.org
libtracefs 1.7.0 12/22/2023 LIBTRACEFS(3)
Pages that refer to this page: tracefs_event_get_file(3)