/* * funcs.c */ #include #include #include #include "funcs.h" extern int verbosity; /* --------------------------------------------------------------- */ int random1000(int type) { int value; if (verbosity) fprintf(stderr, ">>> %s(%d)\n", __func__, type); switch (type) { case 0: value = rand() % 1000; break; case 1: value = (rand()%1000 + rand()%1000) / 2; break; default: value = -1; break; } return value; } /* --------------------------------------------------------------- */ double dtime(void) { struct timeval tv; int foo; foo = gettimeofday(&tv, NULL); if (foo) fprintf(stderr, "got %d in %s\n", foo, __func__); return (double)tv.tv_sec + (double)tv.tv_usec / 1e6; } /* --------------------------------------------------------------- */ int get_loadavg(double *where) { FILE *fp; double loads[3]; int foo; if ( ! (fp=fopen("/proc/loadavg", "r")) ) { perror("read loadavg"); return -1; } foo = fscanf(fp, "%lf %lf %lf", loads, loads+1, loads+2); if (3 != foo) fprintf(stderr, "%s : read %d vals\n", __func__, foo); memcpy(where, loads, 3 * sizeof(double)); fclose(fp); return 0; } /* --------------------------------------------------------------- */