#define _GNU_SOURCE | |
#include <stdlib.h> | |
#include <sys/sysinfo.h> | |
int getloadavg(double* a, int n) { | |
struct sysinfo si; | |
if (n <= 0) | |
return n ? -1 : 0; | |
sysinfo(&si); | |
if (n > 3) | |
n = 3; | |
for (int i = 0; i < n; i++) | |
a[i] = 1.0 / (1 << SI_LOAD_SHIFT) * si.loads[i]; | |
return n; | |
} |