summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2004-01-26 20:53:51 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2004-01-26 20:53:51 +0000
commit21b1cc6a449cd796eccfc0997113eb23e6be2233 (patch)
tree46db5b3d8ec636b8a6e900ed9e4e8359641745ed /src
parent3ef62f4c9c58bde4cca02146baeac478960754a7 (diff)
downloadzabbix-21b1cc6a449cd796eccfc0997113eb23e6be2233.tar.gz
zabbix-21b1cc6a449cd796eccfc0997113eb23e6be2233.tar.xz
zabbix-21b1cc6a449cd796eccfc0997113eb23e6be2233.zip
- fixed memory[cached] to work for both linux 2.4 and 2.6 (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@1208 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_agent/sysinfo.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/zabbix_agent/sysinfo.c b/src/zabbix_agent/sysinfo.c
index 23732ee3..9756a91c 100644
--- a/src/zabbix_agent/sysinfo.c
+++ b/src/zabbix_agent/sysinfo.c
@@ -1402,7 +1402,31 @@ double CACHEDMEM(void)
#ifdef HAVE_PROC
/* Get CACHED memory in bytes */
/* return getPROC("/proc/meminfo",8,2);*/
- return getPROC("/proc/meminfo",2,7);
+/* It does not work for both 2.4 and 2.6 */
+/* return getPROC("/proc/meminfo",2,7);*/
+ FILE *f;
+ char *t;
+ char c[MAX_STRING_LEN];
+ double result = FAIL;
+
+ f=fopen("/proc/meminfo","r");
+ if(NULL == f)
+ {
+ return FAIL;
+ }
+ while(NULL!=fgets(c,MAX_STRING_LEN,f))
+ {
+ if(strncmp(c,"Cached:",7) == 0)
+ {
+ t=(char *)strtok(c," ");
+ t=(char *)strtok(NULL," ");
+ sscanf(t, "%lf", &result );
+ break;
+ }
+ }
+ fclose(f);
+
+ return result;
#else
return FAIL;
#endif