From a516077feba96ec24d1ca8a9cbb8490bfdd066f1 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Thu, 21 Nov 2013 01:59:43 +0000 Subject: add legacy getloadavg api --- include/stdlib.h | 1 + src/legacy/getloadavg.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/legacy/getloadavg.c diff --git a/include/stdlib.h b/include/stdlib.h index bca1fb41..2bd5f102 100644 --- a/include/stdlib.h +++ b/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 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 +#include +#include + +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; +} -- cgit v1.2.1