--- a/process/sysdep_LINUX.c +++ b/process/sysdep_LINUX.c @@ -144,6 +144,45 @@ static time_t get_starttime() { return time(NULL) - (time_t)up; } + + +/* uclibc and dietlibc do not have this junk -ReneR */ +#if defined (__UCLIBC__) || defined (__dietlibc__) +static int getloadavg (double loadavg[], int nelem) +{ + int fd; + + fd = open ("/proc/loadavg", O_RDONLY); + if (fd < 0) + return -1; + else + { + char buf[65], *p; + ssize_t nread; + int i; + + nread = read (fd, buf, sizeof buf - 1); + close (fd); + if (nread <= 0) + return -1; + buf[nread - 1] = '\0'; + + if (nelem > 3) + nelem = 3; + p = buf; + for (i = 0; i < nelem; ++i) + { + char *endp; + loadavg[i] = strtod (p, &endp); + if (endp == p) + return -1; + p = endp; + } + + return i; + } +} +#endif /* ------------------------------------------------------------------ Public */