From 670114c1b3eb995bcf6ff3a386daf4409a397477 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Tue, 7 Mar 2023 20:07:42 +0800 Subject: [PATCH] FIX: [STUDIO-2289] impl processname on linux Change-Id: I0acb5e002b5c945bb8ca6272ad95d602fde17cfb --- src/libslic3r/utils.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp index 46b9c111d..15bca1f0b 100644 --- a/src/libslic3r/utils.cpp +++ b/src/libslic3r/utils.cpp @@ -37,6 +37,7 @@ #include #include #include + #include #endif #endif @@ -1150,7 +1151,16 @@ std::string get_process_name(int pid) while (auto q = strchr(p + 1, '/')) p = q; return p; #else - return {}; + char pathbuf[512] = {0}; + char proc_path[32] = "/proc/self/exe"; + if (pid != 0) { snprintf(proc_path, sizeof(proc_path), "/proc/%d/exe", pid); } + if (readlink(proc_path, pathbuf, sizeof(pathbuf)) < 0) { + perror(NULL); + return {}; + } + char *p = pathbuf; + while (auto q = strchr(p + 1, '/')) p = q; + return p; #endif }