--- a/src/libs/zbxsysinfo/linux/cpu.c +++ b/src/libs/zbxsysinfo/linux/cpu.c @@ -62,6 +62,45 @@ int SYSTEM_CPU_DISCOVERY(AGENT_REQUEST * return SYSINFO_RET_OK; } + +/* 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 + int SYSTEM_CPU_NUM(AGENT_REQUEST *request, AGENT_RESULT *result) { char *type;