On 8/1/06 at 1:24 PM, email@hidden (Peter Bierman) wrote:
>> >Assuming that you're willing to accept the stipulation that you can
>> >only look at your own processes, what sorts of information about said
>>>processes would you expect/want such an API to provide? To put it
>>>another way, if you could have your idea "process inspection API",
>>>what would might it look like?
>>
>>Ideally, given a pid, I'd like an API returning the following ps
>>values in a struct:
>>
>>%cpu %mem command lim lstart nice ppid pri sl state time uid xstat
>>
>>To solve my immediate problem, I'd settle for
>>
>>lstart state time xstat
>
>
>Does sysctl on kern.proc work for this? (See the example in the
>sysctl 3 man page.)
>
>I grabbed some source described here:
>http://ezine.daemonnews.org/200205/sysctl-netbsd.html
>
>I had to change some "struct proc" declarations to "struct
>extern_proc", but then it compiles. Running it against my local user
>didn't correctly sum up my CPU usage, but it did correctly count my
>processes.
Thanks for the link.. but I encountered the same result, it didn't return the CPU usage (just
zeros), so I wonder if it suffers from the same "can't get stats from a running process" limitation
as getrusage(). I pulled it into gdb and looked at the extern_proc p_rtime and p_cputicks fields.
(Heck, I showed the whole struct and every time-like field was empty except __p_starttime.)
This code looks familiar- I think I tried sysctl() for times on PPC long ago and then had to go to
task_from_pid() to get real answers. :-).
Thanks
Jeffrey Johnson
Macintosh Development
Wavefunction, Inc.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-dev/email@hidden
This email sent to email@hidden