Extract file name using /usr/apps keyword 37/154337/1
authorhyunuktak <hyunuk.tak@samsung.com>
Tue, 10 Oct 2017 05:33:38 +0000 (14:33 +0900)
committerhyunuktak <hyunuk.tak@samsung.com>
Tue, 10 Oct 2017 05:33:41 +0000 (14:33 +0900)
And ignore blank space

Change-Id: I36813811a9f0ad358d591ae197de0034c326486a
Signed-off-by: hyunuktak <hyunuk.tak@samsung.com>
src/helper/helper-procfs.c

index ca291ac..168c34a 100755 (executable)
 #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");
@@ -56,11 +60,24 @@ int proc_get_cmdline(pid_t pid, char *cmdline)
        }
        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);