Browse Source

add legacy getloadavg api

Szabolcs Nagy 11 years ago
parent
commit
a516077feb
2 changed files with 19 additions and 0 deletions
  1. 1 0
      include/stdlib.h
  2. 18 0
      src/legacy/getloadavg.c

+ 1 - 0
include/stdlib.h

@@ -139,6 +139,7 @@ int mkstemps (char *, int);
 int mkostemps (char *, int, int);
 void *valloc (size_t);
 void *memalign(size_t, size_t);
+int getloadavg(double *, int);
 #define WCOREDUMP(s) ((s) & 0x80)
 #define WIFCONTINUED(s) ((s) == 0xffff)
 #endif

+ 18 - 0
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;
+}