diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-11-07 14:40:26 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-11-07 14:40:26 +0000 |
commit | 59b0ca71889ff06c3a1c6057dc43b98009fa2799 (patch) | |
tree | 6365a8b76e696def876f61619a87086257fa3679 /src/libs/zbxsysinfo/linux/cpu.c | |
parent | eda87e5d773f2a79dcfef59b850a58fe302a1120 (diff) | |
download | zabbix-59b0ca71889ff06c3a1c6057dc43b98009fa2799.tar.gz zabbix-59b0ca71889ff06c3a1c6057dc43b98009fa2799.tar.xz zabbix-59b0ca71889ff06c3a1c6057dc43b98009fa2799.zip |
- added support of system.cpu.intr for Linux (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@2289 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsysinfo/linux/cpu.c')
-rw-r--r-- | src/libs/zbxsysinfo/linux/cpu.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/libs/zbxsysinfo/linux/cpu.c b/src/libs/zbxsysinfo/linux/cpu.c index f45b39db..d0509fef 100644 --- a/src/libs/zbxsysinfo/linux/cpu.c +++ b/src/libs/zbxsysinfo/linux/cpu.c @@ -559,10 +559,37 @@ int SYSTEM_CPU_SWITCHES(const char *cmd, const char *param, unsigned flags, int SYSTEM_CPU_INTR(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { + int ret = SYSINFO_RET_FAIL; + char line[MAX_STRING_LEN]; + + char name[MAX_STRING_LEN]; + unsigned long value = 0; + + FILE *f; + assert(result); clean_result(result); - - return SYSINFO_RET_FAIL; + + f=fopen("/proc/stat","r"); + if(f) + { + while(fgets(line,MAX_STRING_LEN,f) != NULL) + { + if(sscanf(line,"%s\t%lu\n", name, &value) != 2) + continue; + + if(strncmp(name, "intr", MAX_STRING_LEN) == 0) + { + result->type |= AR_UINT64; + result->ui64 = (uint64_t) value; + ret = SYSINFO_RET_OK; + break; + } + } + fclose(f); + } + + return ret; } |