From 4e62c7a87e40daab037ea709989e185efddc18c8 Mon Sep 17 00:00:00 2001 From: Eduardo Ramos Testillano Date: Mon, 27 Nov 2017 04:14:16 +0100 Subject: [PATCH] Get an absolute path for traces in order to bypass possible change-dir operation --- example/diameter/launcher/main.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/example/diameter/launcher/main.cpp b/example/diameter/launcher/main.cpp index 6f2a653..599e4fe 100644 --- a/example/diameter/launcher/main.cpp +++ b/example/diameter/launcher/main.cpp @@ -17,10 +17,22 @@ // Process #include +// To calculate the current working directory and get an absolute path for traces: +#include +#include + int main(int argc, const char** argv) { anna::Logger::setLevel(anna::Logger::Warning); - anna::Logger::initialize("launcher", new TraceWriter("launcher.trace", 2048000)); + + // Current working directory and absolute trace path file: + char c_exe[ PATH_MAX ]; + ssize_t count = readlink( "/proc/self/exe", c_exe, PATH_MAX ); + std::string exe(c_exe, (count > 0) ? count : 0 ); + std::string cwd = exe.substr(0, exe.find_last_of("/")); + std::string trace_file = cwd + "/launcher.trace"; + + anna::Logger::initialize("launcher", new TraceWriter(trace_file, 2048000)); anna::time::functions::initialize(); // before application instantiation (it have a anna::time object) anna::time::functions::setControlPoint(); // start control point (application lifetime) Launcher app; -- 2.20.1