Looking for a convenient way in C to retrieve CPU and memory usage of a process

b. f. bf1783 at googlemail.com
Sun Dec 27 08:32:41 UTC 2009


>I am looking for a convenient way using C to retrieve the current CPU
>and memory utilization of a process of which I have the pid. Can
>somebody please give me a hint of which system-calls/library-functions
>to use for this ? I don't want to use the system() function or grep for
>information via the /proc filesystem.

>I would be grateful if you could also please mention whether the
>suggested method[s] is/are FreeBSD-specific or would be portable to
>other environments like Solaris/Linux ?


Hmm. Portable, no /proc... ?  It could be tough to do this
generically.  Why not look at unixtop, which tries to be portable?:

http://sourceforge.net/projects/unixtop/files/

I think on FreeBSD it resorts to using kvm(3).  You could just call
that directly.  Also, coming soon on FreeBSD, there will be
libprocstat, which aims at making this easier:

http://svn.freebsd.org/viewvc/base/projects/libprocstat/

stas@ is working on that.  This kind of question is best suited for
freebsd-hackers@ .

Regards,

b.


More information about the freebsd-questions mailing list