summaryrefslogtreecommitdiff
path: root/src/legacy/getloadavg.c
blob: 43a8c9e36e1efee7b43dd69777b5cd78599fd0b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define _GNU_SOURCE
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int getloadavg(double *a, int n)
{
	int i;
	double b[3];
	FILE *f = fopen("/proc/loadavg", "rbe");
	if (!f) return -1;
	i = fscanf(f, "%lf %lf %lf", b, b+1, b+2);
	fclose(f);
	if (n > i) n = i;
	if (n < 0) return -1;
	memcpy(a, b, n * sizeof *a);
	return n;
}