diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-05 00:43:51 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-05 00:43:51 +0000 |
commit | 459e4d6cf77940977a064edab60c7162731554fb (patch) | |
tree | 5deb7d2b82c280440761cceb4281738867d5631a /libbb/find_pid_by_name.c | |
parent | fa07680091d20f9da1f8fa2c145dd92b5d62ae09 (diff) | |
download | busybox-w32-459e4d6cf77940977a064edab60c7162731554fb.tar.gz busybox-w32-459e4d6cf77940977a064edab60c7162731554fb.tar.bz2 busybox-w32-459e4d6cf77940977a064edab60c7162731554fb.zip |
replace /proc scanning code by more versatile one.
Use it where appropriate.
Stop scanning /etc/passwd *for every process*!!! (uid->username)
top: reduce memory usage - we won't save unneeded fields
from /proc info anymore. Downside: ~+250 bytes of code
Diffstat (limited to 'libbb/find_pid_by_name.c')
-rw-r--r-- | libbb/find_pid_by_name.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libbb/find_pid_by_name.c b/libbb/find_pid_by_name.c index 05f7f968f..e98616940 100644 --- a/libbb/find_pid_by_name.c +++ b/libbb/find_pid_by_name.c | |||
@@ -23,11 +23,11 @@ pid_t* find_pid_by_name(const char* procName) | |||
23 | { | 23 | { |
24 | pid_t* pidList; | 24 | pid_t* pidList; |
25 | int i = 0; | 25 | int i = 0; |
26 | procps_status_t* p; | 26 | procps_status_t* p = NULL; |
27 | 27 | ||
28 | pidList = xmalloc(sizeof(*pidList)); | 28 | pidList = xmalloc(sizeof(*pidList)); |
29 | while ((p = procps_scan(0)) != 0) { | 29 | while ((p = procps_scan(p, PSSCAN_PID|PSSCAN_COMM))) { |
30 | if (strncmp(p->short_cmd, procName, COMM_LEN-1) == 0) { | 30 | if (strncmp(p->comm, procName, sizeof(p->comm)-1) == 0) { |
31 | pidList = xrealloc(pidList, sizeof(*pidList) * (i+2)); | 31 | pidList = xrealloc(pidList, sizeof(*pidList) * (i+2)); |
32 | pidList[i++] = p->pid; | 32 | pidList[i++] = p->pid; |
33 | } | 33 | } |