summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-06-26 22:55:45 +0000
committerEric Andersen <andersen@codepoet.org>2001-06-26 22:55:45 +0000
commitd98337a7b49f389973a3138230f55e27d754e926 (patch)
tree731f3243f384f519fc9ce1848e1f0ff16c742a62
parent91a6318d555eb96f48fb8c134d5499d2f61670a0 (diff)
downloadbusybox-w32-d98337a7b49f389973a3138230f55e27d754e926.tar.gz
busybox-w32-d98337a7b49f389973a3138230f55e27d754e926.tar.bz2
busybox-w32-d98337a7b49f389973a3138230f55e27d754e926.zip
Fix ps so it doesn't waste space showing group, as it is pretty much
meaningless anyways. -Erik
-rw-r--r--procps/ps.c23
-rw-r--r--ps.c23
2 files changed, 10 insertions, 36 deletions
diff --git a/procps/ps.c b/procps/ps.c
index bf162bbe5..c59fc0f9c 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -53,7 +53,7 @@ typedef struct proc_s {
53 char 53 char
54 cmd[16]; /* basename of executable file in call to exec(2) */ 54 cmd[16]; /* basename of executable file in call to exec(2) */
55 int 55 int
56 ruid, rgid, /* real only (sorry) */ 56 ruid, /* real only (sorry) */
57 pid, /* process id */ 57 pid, /* process id */
58 ppid; /* pid of parent process */ 58 ppid; /* pid of parent process */
59 char 59 char
@@ -101,11 +101,6 @@ static void parse_proc_status(char *S, proc_t * P)
101 else 101 else
102 error_msg("Internal error!"); 102 error_msg("Internal error!");
103 103
104 tmp = strstr(S, "Gid:");
105 if (tmp)
106 sscanf(tmp, "Gid:\t%d", &P->rgid);
107 else
108 error_msg("Internal error!");
109 104
110} 105}
111 106
@@ -117,7 +112,6 @@ extern int ps_main(int argc, char **argv)
117 struct dirent *entry; 112 struct dirent *entry;
118 char path[32], sbuf[512]; 113 char path[32], sbuf[512];
119 char uidName[9]; 114 char uidName[9];
120 char groupName[9];
121 int len, i, c; 115 int len, i, c;
122#ifdef BB_FEATURE_AUTOWIDTH 116#ifdef BB_FEATURE_AUTOWIDTH
123 struct winsize win = { 0, 0, 0, 0 }; 117 struct winsize win = { 0, 0, 0, 0 };
@@ -138,7 +132,7 @@ extern int ps_main(int argc, char **argv)
138 terminal_width = win.ws_col - 1; 132 terminal_width = win.ws_col - 1;
139#endif 133#endif
140 134
141 printf("%5s %-8s %-3s %5s %s\n", "PID", "Uid", "Gid", "State", "Command"); 135 printf("%5s %-8s %5s %s\n", "PID", "Uid", "State", "Command");
142 while ((entry = readdir(dir)) != NULL) { 136 while ((entry = readdir(dir)) != NULL) {
143 if (!isdigit(*entry->d_name)) 137 if (!isdigit(*entry->d_name))
144 continue; 138 continue;
@@ -151,16 +145,13 @@ extern int ps_main(int argc, char **argv)
151 my_getpwuid(uidName, p.ruid); 145 my_getpwuid(uidName, p.ruid);
152 if (*uidName == '\0') 146 if (*uidName == '\0')
153 sprintf(uidName, "%d", p.ruid); 147 sprintf(uidName, "%d", p.ruid);
154 my_getgrgid(groupName, p.rgid);
155 if (*groupName == '\0')
156 sprintf(groupName, "%d", p.rgid);
157 148
158 sprintf(path, "/proc/%s/cmdline", entry->d_name); 149 sprintf(path, "/proc/%s/cmdline", entry->d_name);
159 file = fopen(path, "r"); 150 file = fopen(path, "r");
160 if (file == NULL) 151 if (file == NULL)
161 continue; 152 continue;
162 i = 0; 153 i = 0;
163 len = printf("%5d %-8s %-8s %c ", p.pid, uidName, groupName, p.state); 154 len = printf("%5d %-8s %c ", p.pid, uidName, p.state);
164 while (((c = getc(file)) != EOF) && (i < (terminal_width-len))) { 155 while (((c = getc(file)) != EOF) && (i < (terminal_width-len))) {
165 i++; 156 i++;
166 if (c == '\0') 157 if (c == '\0')
@@ -195,7 +186,6 @@ extern int ps_main(int argc, char **argv)
195 pid_t* pid_array = NULL; 186 pid_t* pid_array = NULL;
196 struct pid_info info; 187 struct pid_info info;
197 char uidName[9]; 188 char uidName[9];
198 char groupName[9];
199#ifdef BB_FEATURE_AUTOWIDTH 189#ifdef BB_FEATURE_AUTOWIDTH
200 struct winsize win = { 0, 0, 0, 0 }; 190 struct winsize win = { 0, 0, 0, 0 };
201 int terminal_width = TERMINAL_WIDTH; 191 int terminal_width = TERMINAL_WIDTH;
@@ -233,7 +223,7 @@ extern int ps_main(int argc, char **argv)
233#endif 223#endif
234 224
235 /* Print up a ps listing */ 225 /* Print up a ps listing */
236 printf("%5s %-8s %-3s %5s %s\n", "PID", "Uid", "Gid", "State", "Command"); 226 printf("%5s %-8s %5s %s\n", "PID", "Uid", "State", "Command");
237 227
238 for (i=1; i<pid_array[0] ; i++) { 228 for (i=1; i<pid_array[0] ; i++) {
239 info.pid = pid_array[i]; 229 info.pid = pid_array[i];
@@ -245,11 +235,8 @@ extern int ps_main(int argc, char **argv)
245 my_getpwuid(uidName, info.euid); 235 my_getpwuid(uidName, info.euid);
246 if (*uidName == '\0') 236 if (*uidName == '\0')
247 sprintf(uidName, "%ld", info.euid); 237 sprintf(uidName, "%ld", info.euid);
248 my_getgrgid(groupName, info.egid);
249 if (*groupName == '\0')
250 sprintf(groupName, "%ld", info.egid);
251 238
252 len = printf("%5d %-8s %-8s %c ", info.pid, uidName, groupName, info.state); 239 len = printf("%5d %-8s %c ", info.pid, uidName, info.state);
253 240
254 if (strlen(info.command_line) > 1) { 241 if (strlen(info.command_line) > 1) {
255 for( j=0; j<(sizeof(info.command_line)-1) && j < (terminal_width-len); j++) { 242 for( j=0; j<(sizeof(info.command_line)-1) && j < (terminal_width-len); j++) {
diff --git a/ps.c b/ps.c
index bf162bbe5..c59fc0f9c 100644
--- a/ps.c
+++ b/ps.c
@@ -53,7 +53,7 @@ typedef struct proc_s {
53 char 53 char
54 cmd[16]; /* basename of executable file in call to exec(2) */ 54 cmd[16]; /* basename of executable file in call to exec(2) */
55 int 55 int
56 ruid, rgid, /* real only (sorry) */ 56 ruid, /* real only (sorry) */
57 pid, /* process id */ 57 pid, /* process id */
58 ppid; /* pid of parent process */ 58 ppid; /* pid of parent process */
59 char 59 char
@@ -101,11 +101,6 @@ static void parse_proc_status(char *S, proc_t * P)
101 else 101 else
102 error_msg("Internal error!"); 102 error_msg("Internal error!");
103 103
104 tmp = strstr(S, "Gid:");
105 if (tmp)
106 sscanf(tmp, "Gid:\t%d", &P->rgid);
107 else
108 error_msg("Internal error!");
109 104
110} 105}
111 106
@@ -117,7 +112,6 @@ extern int ps_main(int argc, char **argv)
117 struct dirent *entry; 112 struct dirent *entry;
118 char path[32], sbuf[512]; 113 char path[32], sbuf[512];
119 char uidName[9]; 114 char uidName[9];
120 char groupName[9];
121 int len, i, c; 115 int len, i, c;
122#ifdef BB_FEATURE_AUTOWIDTH 116#ifdef BB_FEATURE_AUTOWIDTH
123 struct winsize win = { 0, 0, 0, 0 }; 117 struct winsize win = { 0, 0, 0, 0 };
@@ -138,7 +132,7 @@ extern int ps_main(int argc, char **argv)
138 terminal_width = win.ws_col - 1; 132 terminal_width = win.ws_col - 1;
139#endif 133#endif
140 134
141 printf("%5s %-8s %-3s %5s %s\n", "PID", "Uid", "Gid", "State", "Command"); 135 printf("%5s %-8s %5s %s\n", "PID", "Uid", "State", "Command");
142 while ((entry = readdir(dir)) != NULL) { 136 while ((entry = readdir(dir)) != NULL) {
143 if (!isdigit(*entry->d_name)) 137 if (!isdigit(*entry->d_name))
144 continue; 138 continue;
@@ -151,16 +145,13 @@ extern int ps_main(int argc, char **argv)
151 my_getpwuid(uidName, p.ruid); 145 my_getpwuid(uidName, p.ruid);
152 if (*uidName == '\0') 146 if (*uidName == '\0')
153 sprintf(uidName, "%d", p.ruid); 147 sprintf(uidName, "%d", p.ruid);
154 my_getgrgid(groupName, p.rgid);
155 if (*groupName == '\0')
156 sprintf(groupName, "%d", p.rgid);
157 148
158 sprintf(path, "/proc/%s/cmdline", entry->d_name); 149 sprintf(path, "/proc/%s/cmdline", entry->d_name);
159 file = fopen(path, "r"); 150 file = fopen(path, "r");
160 if (file == NULL) 151 if (file == NULL)
161 continue; 152 continue;
162 i = 0; 153 i = 0;
163 len = printf("%5d %-8s %-8s %c ", p.pid, uidName, groupName, p.state); 154 len = printf("%5d %-8s %c ", p.pid, uidName, p.state);
164 while (((c = getc(file)) != EOF) && (i < (terminal_width-len))) { 155 while (((c = getc(file)) != EOF) && (i < (terminal_width-len))) {
165 i++; 156 i++;
166 if (c == '\0') 157 if (c == '\0')
@@ -195,7 +186,6 @@ extern int ps_main(int argc, char **argv)
195 pid_t* pid_array = NULL; 186 pid_t* pid_array = NULL;
196 struct pid_info info; 187 struct pid_info info;
197 char uidName[9]; 188 char uidName[9];
198 char groupName[9];
199#ifdef BB_FEATURE_AUTOWIDTH 189#ifdef BB_FEATURE_AUTOWIDTH
200 struct winsize win = { 0, 0, 0, 0 }; 190 struct winsize win = { 0, 0, 0, 0 };
201 int terminal_width = TERMINAL_WIDTH; 191 int terminal_width = TERMINAL_WIDTH;
@@ -233,7 +223,7 @@ extern int ps_main(int argc, char **argv)
233#endif 223#endif
234 224
235 /* Print up a ps listing */ 225 /* Print up a ps listing */
236 printf("%5s %-8s %-3s %5s %s\n", "PID", "Uid", "Gid", "State", "Command"); 226 printf("%5s %-8s %5s %s\n", "PID", "Uid", "State", "Command");
237 227
238 for (i=1; i<pid_array[0] ; i++) { 228 for (i=1; i<pid_array[0] ; i++) {
239 info.pid = pid_array[i]; 229 info.pid = pid_array[i];
@@ -245,11 +235,8 @@ extern int ps_main(int argc, char **argv)
245 my_getpwuid(uidName, info.euid); 235 my_getpwuid(uidName, info.euid);
246 if (*uidName == '\0') 236 if (*uidName == '\0')
247 sprintf(uidName, "%ld", info.euid); 237 sprintf(uidName, "%ld", info.euid);
248 my_getgrgid(groupName, info.egid);
249 if (*groupName == '\0')
250 sprintf(groupName, "%ld", info.egid);
251 238
252 len = printf("%5d %-8s %-8s %c ", info.pid, uidName, groupName, info.state); 239 len = printf("%5d %-8s %c ", info.pid, uidName, info.state);
253 240
254 if (strlen(info.command_line) > 1) { 241 if (strlen(info.command_line) > 1) {
255 for( j=0; j<(sizeof(info.command_line)-1) && j < (terminal_width-len); j++) { 242 for( j=0; j<(sizeof(info.command_line)-1) && j < (terminal_width-len); j++) {