Хочется узнать, сколько процесс потратил процессорного времени за свое выполнение. Пока балюусь так:
#include <sys/time.h>
#include <sys/types.h>
#include <sys/resource.h>
#include <math.h>
#include <time.h>
#define MAXCOUNT 10000
int main () {
int i, j, count, total;
struct rusage rsr_usage;
clock_t start, end;
double cpu_time_used;
start = clock();
total = 0;
getrusage(RUSAGE_SELF, &rsr_usage);
for (i = 2; total <= MAXCOUNT; i++)
{ /*SKIPPED HEAWY WORK*/ }
getrusage(RUSAGE_SELF, &rsr_usage);
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("\tgetrusage %.8f \n", (rsr_usage.ru_stime.tv_sec * 1000) + (rsr_usage.ru_stime.tv_usec / 1000));
printf("\tuser time clocks() %.8 f\n", cpu_time_used);
return 0;
}
в результате имеем:
ubique@ubique ~/dev/files $ time ./badscript
getrusage -0.00000000
user time clocks() 0.28000000
real 0m0.325s
user 0m0.288s
sys 0m0.000s
Те, когда считаем через clocks, у нас получается верно. А вот с getrusage..