about summary refs log tree commit diff
path: root/src/legacy/getloadavg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/legacy/getloadavg.c')
-rw-r--r--src/legacy/getloadavg.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/legacy/getloadavg.c b/src/legacy/getloadavg.c
new file mode 100644
index 00000000..43a8c9e3
--- /dev/null
+++ b/src/legacy/getloadavg.c
@@ -0,0 +1,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;
+}