more concise memory calculation on Linux
more flexible parsing for /proc/meminfo to take shared and reclaimable
memory into account. this matches the output with free(1).
additionally this could fix some corner cases, as the order of fields in
/proc/meminfo is not strictly defined.
slstatus:
percent 81% free 2.5 Gi total 23.4 Gi used 19.0 Gi
free(1):
total used free shared buff/cache available
Mem: 23Gi 19Gi 2.5Gi 1.3Gi 3.2Gi 3.6Gi
This commit is contained in:
17
util.c
17
util.c
@@ -139,3 +139,20 @@ pscanf(const char *path, const char *fmt, ...)
|
||||
|
||||
return (n == EOF) ? -1 : n;
|
||||
}
|
||||
|
||||
int
|
||||
lscanf(FILE *fp, const char *key, const char *fmt, void *res)
|
||||
{
|
||||
int n;
|
||||
char line[256];
|
||||
|
||||
n = -1;
|
||||
while (fgets(line, sizeof(line), fp))
|
||||
if (strncmp(line, key, strlen(key)) == 0) {
|
||||
n = sscanf(line + strlen(key), fmt, res);
|
||||
break;
|
||||
}
|
||||
|
||||
rewind(fp);
|
||||
return (n == 1) ? 1 : -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user