У меня есть класс со следующими функциями-членами:
/// caller pid
virtual pid_t Pid() const = 0;
/// physical memory size in KB
virtual uint64_t Size() const = 0;
/// resident memory for this process
virtual uint64_t Rss() const = 0;
/// cpu used by this process
virtual double PercentCpu() const = 0;
/// memory used by this process
virtual double PercentMemory() const = 0;
/// number of threads in this process
virtual int32_t Lwps() const = 0;
Обязанность этого класса - вернуть информацию процесса о вызывающем абоненте. Размер физической памяти может быть легко определен вызовом sysctl, а pid тривиален, но оставшиеся вызовы ускользают от меня, кроме вызова popen на ps или top и синтаксического анализа вывода, что неприемлемо. Любая помощь будет принята с благодарностью.
Требования:
Компиляция на g++ 4.0
Нет obj-c
OSX 10.5