diff options
| -rw-r--r-- | include/stdlib.h | 1 | ||||
| -rw-r--r-- | src/legacy/getloadavg.c | 18 | 
2 files changed, 19 insertions, 0 deletions
| 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 <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; +} | 
