Show command line arguments in Linux

This commit is contained in:
Mike Massonnet
2009-09-09 20:24:24 +02:00
parent e05fff219f
commit e545b2e716
3 changed files with 28 additions and 2 deletions

View File

@@ -31,8 +31,9 @@ static void get_cmdline(gint pid, gchar *cmdline, gint length, gchar *cmdline_fu
FILE *file;
char filename[255];
char *p;
char *args = NULL;
int c;
int i = 0;
int i = 0, j = 0;
char buffer[4096];
int idummy;
@@ -47,6 +48,9 @@ static void get_cmdline(gint pid, gchar *cmdline, gint length, gchar *cmdline_fu
if (c != 0) {
cmdline_full[i++] = c;
} else {
if (args == NULL) {
args = cmdline_full + i;
}
cmdline_full[i++] = ' ';
}
@@ -60,6 +64,9 @@ static void get_cmdline(gint pid, gchar *cmdline, gint length, gchar *cmdline_fu
cmdline_full[i] = '\0';
}
if (args != NULL && args[0] == '\0')
args = NULL;
fclose (file);
/* daemon processes and kernel processes don't have a cmdline */
@@ -105,6 +112,13 @@ static void get_cmdline(gint pid, gchar *cmdline, gint length, gchar *cmdline_fu
}
}
if (args != NULL) {
for (i = strlen(cmdline), j = 0; args[j] != '\0' && i < length - 1; i++, j++) {
cmdline[i] = args[j];
}
cmdline[i] = '\0';
}
if (cmdline[0] == '-') {
for (i = 0; cmdline[i] != '\0'; i++) {
cmdline[i] = cmdline[i+1];