aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cfetch.c2
-rw-r--r--src/modules/memory/memory.c28
-rw-r--r--src/modules/memory/memory.h8
3 files changed, 38 insertions, 0 deletions
diff --git a/src/cfetch.c b/src/cfetch.c
index e920456..dd7094e 100644
--- a/src/cfetch.c
+++ b/src/cfetch.c
@@ -1,6 +1,8 @@
#include "modules/os/os.h"
+#include "modules/memory/memory.h"
int main(void) {
os();
+ memory();
return 0;
}
diff --git a/src/modules/memory/memory.c b/src/modules/memory/memory.c
new file mode 100644
index 0000000..58d40df
--- /dev/null
+++ b/src/modules/memory/memory.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include "memory.h"
+
+int memory(void) {
+ FILE *file = fopen("/proc/meminfo", "r");
+
+ if (!file) {
+ fclose(file);
+ perror("fopen");
+ return 1;
+ }
+
+ char line[256];
+ long total = 0;
+ long available = 0;
+
+ // read per line
+ while (fgets(line, sizeof(line), file)) {
+ if (sscanf(line, "MemTotal: %ld kB", &total) == 1) continue;
+ if (sscanf(line, "MemAvailable: %ld kB", &available) == 1) continue;
+ }
+
+ fclose(file);
+
+ printf("Memory: %.2f GB / %.2f GB\n", (total - available) / (1024.0 * 1024.0), total / (1024.0 * 1024.0));
+
+ return 0;
+}
diff --git a/src/modules/memory/memory.h b/src/modules/memory/memory.h
new file mode 100644
index 0000000..9915100
--- /dev/null
+++ b/src/modules/memory/memory.h
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+#ifndef MEMORY_H
+#define MEMORY_H
+
+int memory(void);
+
+#endif // MEMORY_H