site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com <http://www.opengroup.org/onlinepubs/009695399/utilities/ps.html> -- Terry Norm Green -----Original Message----- From: Finlay Dobbie [mailto:finlay.dobbie@gmail.com] Sent: Tuesday, December 11, 2007 5:20 AM To: Terry Lambert Cc: darwin-dev@lists.apple.com Subject: Re: rusage data for another process? If you're absolutely desperate, you could either: 1. parse the output of ps 2. use the same approach that ps does (fiddling with the relevant mach_tasks, look at the adv_cmds project) Of course, both of these are fragile and subject to breakage at any point in the future. -- Finlay _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/norm.green%40gemstone.com This email sent to norm.green@gemstone.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... Actually, parsing ps output if you use -o to control the formating output options, is pretty portable. The "ps" command is mandated by POSIX, so there's not a huge amount of room for reinterpretation, unless the standards themselves change. Of course you should limit yourself to the formatting options that are specified by: On Dec 11, 2007, at 6:22 AM, Norm Green wrote: I'm porting an application to Darwin that currently runs on Solaris, HPUX, AIX and Linux. Getting the process data by calling "ps" or by accessing the low-level and unstable interfaces are my least preferred options. It would be nice if Darwin had a stable API for getting performance data of another process without disturbing that other process, just as these other UNIX systems do. On Dec 10, 2007 11:33 PM, Terry Lambert <tlambert@apple.com> wrote:
On Dec 10, 2007, at 3:14 PM, Steve Thompson wrote:
On Sun, 9 Dec 2007, Norm Green wrote:
Is there a way to get the data returned by getrusage() for another
process?
I also need this functionality, as least insofar as the CPU usage
fields are concerned.
Generally, there is no way to get this information for another
process, unless it's your child process, and it has terminated, or
unless it is for yourself.
The most correct approach is to ask the other process to make the
call, and then tell you, simce time is not really accounted for all
your threads until you make the call (the BSD getrusage() output is
more or less synthetic). This email sent to site_archiver@lists.apple.com