From 9fa06763a1afe0946a3a20e5bbdba72885cbade5 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Tue, 18 Apr 2023 00:44:49 +0200 Subject: [PATCH] Port getprogname() to AIX Get the program name from the COMM field from the proc filesystem. We could use instead the information from the psinfo binary file under /proc, but that seems to have a shorter string limit. --- src/progname.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/progname.c b/src/progname.c index b62ecd4..56d91ec 100644 --- a/src/progname.c +++ b/src/progname.c @@ -62,6 +62,14 @@ getprogname(void) /* getexecname(3) returns an absolute pathname, normalize it. */ if (__progname == NULL) setprogname(getexecname()); +#elif defined(_AIX) + if (__progname == NULL) { + struct procentry64 procs; + pid_t pid = getpid (); + + if (getprocs64(&procs, sizeof procs, NULL, 0, &pid, 1) > 0) + __progname = strdup(procs.pi_comm); + } #elif defined(_WIN32) if (__progname == NULL) { WCHAR *wpath = NULL; -- 2.47.2