- long total, free, buffers, cached;
-
- return (pscanf("/proc/meminfo",
- "MemTotal: %ld kB\n"
- "MemFree: %ld kB\n"
- "MemAvailable: %ld kB\nBuffers: %ld kB\n"
- "Cached: %ld kB\n",
- &total, &free, &buffers, &buffers, &cached) == 5) ?
- bprintf("%d%%", 100 * ((total - free) - (buffers + cached)) /
- total) :
- NULL;
+ uint64_t total, free, buffers, cached;
+
+ if (pscanf("/proc/meminfo",
+ "MemTotal: %" PRIu64 " kB\n"
+ "MemFree: %" PRIu64 " kB\n"
+ "MemAvailable: %" PRIu64 " kB\nBuffers: %ld kB\n"
+ "Cached: %" PRIu64 " kB\n",
+ &total, &free, &buffers, &buffers, &cached) != 5) {
+ return NULL;
+ }
+
+ return bprintf("%d", 100 * ((total - free) -
+ (buffers + cached)) / total);