diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-06-26 22:55:45 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-06-26 22:55:45 +0000 |
commit | d98337a7b49f389973a3138230f55e27d754e926 (patch) | |
tree | 731f3243f384f519fc9ce1848e1f0ff16c742a62 | |
parent | 91a6318d555eb96f48fb8c134d5499d2f61670a0 (diff) | |
download | busybox-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.c | 23 | ||||
-rw-r--r-- | ps.c | 23 |
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++) { |
@@ -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++) { |