Re: task_for_pid never returns KERN_SUCCESS, any ideas?
Re: task_for_pid never returns KERN_SUCCESS, any ideas?
- Subject: Re: task_for_pid never returns KERN_SUCCESS, any ideas?
- From: Gary Fung <email@hidden>
- Date: Mon, 12 Jan 2009 13:37:53 -0500
Jason Coco wrote:
On Jan 12, 2009, at 12:54 , Gary Fung wrote:
Tried to retrieve task_info_t by using task_for_pid but the
following code does not equate to true
task_t task = MACH_PORT_NULL;
struct task_basic_info tinf;
if(task_for_pid(mach_task_self(), pid, &task) == KERN_SUCCESS) {
... //not reached
}
mach_task_self returns non null value so that should be ok. But
task_for_pid does not return anything for &task. Any ideas? I've
iterated through all the pids currently running, same result. Ran it
on Leopard.
task_for_pid() requires special privileges to execute. Instead of
testing for KERN_SUCCESS in the future, I suggest using a variable to
test, then you can see exactly what failed (in this case, you will not
have privileges to execute it).
The easiest way to deal with this (although, probably not the best
way) is to execute the application as root. You can see the man page
for taskgated(8) for more information on task_for_pid() and its
security issues.
Jason
It returns 5 for all pids, which is a KERN_FAILURE correct? This
doesn't provide much information at all. It only returns KERN_SUCCESS
for the running process itself. I thought you have permission to
retrieve task_info for other processes under the same user?
Is there an easier way to retrieve the memory usage of a process?
Retrieving the pid and process name was not this difficult.
|
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden