char *stline = NULL;
size_t stlen;
FILE *stfile;
-
+
int memtotal = 0;
int memfree = 0;
int memused;
int membuffers = 0;
int memcached = 0;
-
-
+
+
stfile = fopen("/proc/meminfo", "r");
if (stfile != NULL)
{
stlen = getline(&stline, &stlen, stfile);
memtotal = atoi(&stline[17]);
-
+
stlen = getline(&stline, &stlen, stfile);
memfree = atoi(&stline[17]);
-
+
stlen = getline(&stline, &stlen, stfile);
membuffers = atoi(&stline[17]);
-
+
stlen = getline(&stline, &stlen, stfile);
memcached = atoi(&stline[17]);
free(stline);
-
+
fclose(stfile);
-
+
memused = memtotal - memfree - memcached - membuffers;
-
+
memused /= 1024; // Just show MBs used
-
+
if ((float)memused / (float)memtotal < 0.85)
fputs("^fg(green)", stdout); // < 85% mem used
else
fputs("^fg(red)", stdout); // >= 85% mem used
-
+
printf(" Mem: %d M ", memused);
}
}