Поскольку вы говорите, что Objective-C отсутствует, мы исключим большинство платформ MacOS.
Вы можете получить процессорное время, используя getrusage (), которое дает общее количество пользовательского и системного процессорного времени, отведенного вашему процессу. Чтобы получить процент загрузки процессора, вам нужно снимать значения getrusage один раз в секунду (или какими бы гранулярными вы ни были).
#include <sys/resource.h>
struct rusage r_usage;
if (getrusage(RUSAGE_SELF, &r_usage)) {
/* ... error handling ... */
}
printf("Total User CPU = %ld.%ld\n",
r_usage.ru_utime.tv_sec,
r_usage.ru_utime.tv_usec);
printf("Total System CPU = %ld.%ld\n",
r_usage.ru_stime.tv_sec,
r_usage.ru_stime.tv_usec);
В структуре getrusage есть поле RSS, но в MacOS X 10.5 оно всегда равно нулю. Майкл Найт написал в блоге несколько лет назад сообщение о том, как определить RSS.