может-ли кто-нибудь подтвердить или опровергнуть следующее:
если дергать за getrusage(2), например, раз в секунду, то значения в
struct_usage.ru_utime и .ru_stime не изменяются/обнуляются, если в процессе не происходит ничего или очень мало.
будет понятнее, если взглянуть на код ниже )
в моей программе getrusage вызывается раз в секунду, по событию (libevent)
и что-бы user/system time считалось правильно (сравнивал с top), я сделал так:
static struct timeval last_utime = { 0 };
if (memcmp(&last_utime, &(res_info.ru_utime), sizeof(struct timeval)) == 0)
memset(&(res_info.ru_utime), 0, sizeof(struct timeval));
else
memcpy(&last_utime, &(res_info.ru_utime), sizeof(struct timeval));
// и аналогично для .ru_stime