blob: 101b7798c814162a58680be2327925fa1239980a [file] [log] [blame]
#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;
}