diff options
author | Aaron Marcher <info@nulltime.net> | 2016-06-10 18:46:47 +0200 |
---|---|---|
committer | Aaron Marcher (drkhsh) <info@nulltime.net> | 2016-06-10 18:46:47 +0200 |
commit | 688c2d43e2f89544add30f864f855843369fb85f (patch) | |
tree | 9a5e4571f00a2938164f51a00de488ca5b8458b4 /slstatus.c | |
parent | c7f3a407f4f8d539fe68cbf7dde76876cbcbccaa (diff) |
added memory values ram functions
Diffstat (limited to 'slstatus.c')
-rw-r--r-- | slstatus.c | 76 |
1 files changed, 76 insertions, 0 deletions
@@ -273,6 +273,30 @@ ip(const char *interface) return smprintf("n/a"); } +/* ram free */ +char * +ram_free(const char *null) +{ + long free; + FILE *fp; + + /* open meminfo file */ + if (!(fp = fopen("/proc/meminfo", "r"))) { + fprintf(stderr, "Error opening meminfo file."); + return smprintf("n/a"); + } + + /* read the values */ + fscanf(fp, "MemTotal: %*d kB\n"); + fscanf(fp, "MemFree: %ld kB\n", &free); + + /* close meminfo file */ + fclose(fp); + + /* return free ram as string */ + return smprintf("%f", (float)free / 1024 / 1024); +} + /* ram percentage */ char * ram_perc(const char *null) @@ -303,6 +327,58 @@ ram_perc(const char *null) return smprintf("%d%%", perc); } +/* ram total */ +char * +ram_total(const char *null) +{ + long total; + FILE *fp; + + /* open meminfo file */ + if (!(fp = fopen("/proc/meminfo", "r"))) { + fprintf(stderr, "Error opening meminfo file."); + return smprintf("n/a"); + } + + /* read the values */ + fscanf(fp, "MemTotal: %ld kB\n", &total); + + /* close meminfo file */ + fclose(fp); + + /* return total ram as string */ + return smprintf("%f", (float)total / 1024 / 1024); +} + +/* ram used */ +char * +ram_used(const char *null) +{ + long free, total, buffers, cached, used; + FILE *fp; + + /* open meminfo file */ + if (!(fp = fopen("/proc/meminfo", "r"))) { + fprintf(stderr, "Error opening meminfo file."); + return smprintf("n/a"); + } + + /* read the values */ + fscanf(fp, "MemTotal: %ld kB\n", &total); + fscanf(fp, "MemFree: %ld kB\n", &free); + fscanf(fp, "MemAvailable: %ld kB\nBuffers: %ld kB\n", &buffers, &buffers); + fscanf(fp, "Cached: %ld kB\n", &cached); + + /* close meminfo file */ + fclose(fp); + + /* calculate used */ + used = total - free - buffers - cached; + + /* return used ram as string */ + return smprintf("%f", (float)used / 1024 / 1024); +} + /* temperature */ char * temp(const char *file) |