Signed-off-by: Mykola Golub <mgolub@mirantis.com>
CHECK_FUNCTION_EXISTS(pthread_setname_np HAVE_PTHREAD_SETNAME_NP)
CHECK_FUNCTION_EXISTS(pthread_getname_np HAVE_PTHREAD_GETNAME_NP)
CHECK_FUNCTION_EXISTS(eventfd HAVE_EVENTFD)
+CHECK_FUNCTION_EXISTS(getprogname HAVE_GETPROGNAME)
CHECK_INCLUDE_FILES("linux/types.h" HAVE_LINUX_TYPES_H)
CHECK_INCLUDE_FILES("linux/version.h" HAVE_LINUX_VERSION_H)
return prctl(PR_GET_NAME, buf);
}
+#elif defined(HAVE_GETPROGNAME)
+
+int get_process_name(char *buf, int len)
+{
+ if (len <= 0) {
+ return -EINVAL;
+ }
+
+ const char *progname = getprogname();
+ if (progname == nullptr || *progname == '\0') {
+ return -ENOSYS;
+ }
+
+ strncpy(buf, progname, len - 1);
+ buf[len - 1] = '\0';
+ return 0;
+}
+
#else
int get_process_name(char *buf, int len)
#cmakedefine PYTHON_EXECUTABLE "@PYTHON_EXECUTABLE@"
+/* Define to 1 if you have the `getprogname' function. */
+#cmakedefine HAVE_GETPROGNAME 1
+
#endif /* CONFIG_H */