#include "stc-manager-util.h"
#include "helper-procfs.h"
+#define USRAPPS "/usr/apps/"
+
int proc_get_cmdline(pid_t pid, char *cmdline)
{
char buf[PROC_BUF_MAX];
char cmdline_buf[PROC_NAME_MAX];
char *filename;
FILE *fp;
+ char *token = NULL;
+ char *saveptr = NULL;
snprintf(buf, sizeof(buf), "/proc/%d/cmdline", pid);
fp = fopen(buf, "r");
}
fclose(fp);
- filename = strrchr(cmdline_buf, '/');
- if (filename == NULL)
- filename = cmdline_buf;
- else
- filename = filename + 1;
+ if (g_strstr_len(cmdline_buf, strlen(USRAPPS), USRAPPS) != NULL) {
+ /* Application */
+ filename = cmdline_buf + strlen(USRAPPS);
+ token = strtok_r(filename, "/", &saveptr);
+ if (token != NULL)
+ filename = token;
+ } else {
+ token = strtok_r(cmdline_buf, " ", &saveptr);
+ if (token != NULL)
+ filename = strrchr(token, '/');
+ else
+ filename = strrchr(cmdline_buf, '/');
+
+ if (filename == NULL)
+ filename = cmdline_buf;
+ else
+ filename = filename + 1;
+ }
strncpy(cmdline, filename, PROC_NAME_MAX-1);