Added team filtering on argv[1] (R5.1 ps has this feature)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1444 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
bb103dca64
commit
238cdcd089
@ -5,11 +5,14 @@
|
|||||||
* ChangeLog:
|
* ChangeLog:
|
||||||
* 04-26-2002 v1.0
|
* 04-26-2002 v1.0
|
||||||
* Initial.
|
* Initial.
|
||||||
|
* 10-08-2002
|
||||||
|
* Added team name filtering (upon suggestion from Dano users :)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <OS.h>
|
#include <OS.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#define SNOOZE_TIME 100000
|
#define SNOOZE_TIME 100000
|
||||||
|
|
||||||
@ -27,11 +30,25 @@ int main(int argc, char **argv)
|
|||||||
char *thstate;
|
char *thstate;
|
||||||
char *states[] = {"run", "rdy", "msg", "zzz", "sus", "sem" };
|
char *states[] = {"run", "rdy", "msg", "zzz", "sus", "sem" };
|
||||||
system_info sysinfo;
|
system_info sysinfo;
|
||||||
|
char *string_to_match; // match this in team name
|
||||||
|
|
||||||
|
if (argc == 2)
|
||||||
|
string_to_match = argv[1];
|
||||||
puts("");
|
puts("");
|
||||||
puts(PS_HEADER);
|
puts(PS_HEADER);
|
||||||
puts(PS_SEP);
|
puts(PS_SEP);
|
||||||
while ((ret = get_next_team_info(&teamcookie, &teaminfo)) >= B_OK) {
|
while ((ret = get_next_team_info(&teamcookie, &teaminfo)) >= B_OK) {
|
||||||
|
if (string_to_match) {
|
||||||
|
char *p;
|
||||||
|
p = teaminfo.args;
|
||||||
|
if ((p = strchr(p, ' ')))
|
||||||
|
*p = '\0'; /* remove arguments, keep only argv[0] */
|
||||||
|
p = strrchr(teaminfo.args, '/'); /* forget the path */
|
||||||
|
if (p == NULL)
|
||||||
|
p = teaminfo.args;
|
||||||
|
if (strstr(p, string_to_match) == NULL)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
printf("%s (team %d) (uid %d) (gid %d)\n", teaminfo.args, teaminfo.team, teaminfo.uid, teaminfo.gid);
|
printf("%s (team %d) (uid %d) (gid %d)\n", teaminfo.args, teaminfo.team, teaminfo.uid, teaminfo.gid);
|
||||||
thcookie = 0;
|
thcookie = 0;
|
||||||
while ((ret = get_next_thread_info(teaminfo.team, &thcookie, &thinfo)) >= B_OK) {
|
while ((ret = get_next_thread_info(teaminfo.team, &thcookie, &thinfo)) >= B_OK) {
|
||||||
|
Loading…
Reference in New Issue
Block a user