summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author諏訪子 <suwako@076.moe>2024-06-21 21:48:02 +0900
committer諏訪子 <suwako@076.moe>2024-06-21 21:48:02 +0900
commit27ae570d688aedd40c3e175b746ee900d08b81d8 (patch)
tree49e1c75c7ca54bf3f54c603016f14307fc9aef9b
parent0556b433bf6f58d837dae4b74ddea25260ca64c8 (diff)
libcの情報
-rw-r--r--main.c9
-rw-r--r--src/libc.c24
-rw-r--r--src/libc.h6
3 files changed, 38 insertions, 1 deletions
diff --git a/main.c b/main.c
index 25e7b0f..9fefc47 100644
--- a/main.c
+++ b/main.c
@@ -16,6 +16,7 @@
#include "src/resolution.h"
#include "src/wm.h"
#include "src/shell.h"
+#include "src/libc.h"
#include "src/cpu.h"
#include "src/gpu.h"
#include "src/memory.h"
@@ -209,6 +210,13 @@ int main(int argc, char *argv[]) {
lc++;
}
+ const char *libc = display_libc();
+ if (libc) {
+ printf("%s ", LOGO[lc]);
+ printf("%slibc%s: %s\n", color, reset, libc);
+ lc++;
+ }
+
const char *cpu = display_cpu();
if (cpu) {
printf("%s ", LOGO[lc]);
@@ -236,7 +244,6 @@ int main(int argc, char *argv[]) {
}
// TODO:
- // * libc
// * 端末
// * ストレージ
diff --git a/src/libc.c b/src/libc.c
new file mode 100644
index 0000000..9b3a129
--- /dev/null
+++ b/src/libc.c
@@ -0,0 +1,24 @@
+#include "libc.h"
+#include "common.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+const char *display_libc() {
+#if defined(__linux__)
+ const char *musl = run_command_s("ldd $(which ls) | grep libc | grep musl)";
+ if (musl != NULL && strlen(musl) != 0) {
+ free((void *)musl);
+ return "musl";
+ }
+
+ const char *glibc = run_command_s("ldd $(which ls) | grep libc | grep gnu");
+ if (glibc != NULL && strlen(glibc) != 0) {
+ free((void *)glibc);
+ return "glibc";
+ }
+#endif
+
+ return NULL;
+}
diff --git a/src/libc.h b/src/libc.h
new file mode 100644
index 0000000..0558a77
--- /dev/null
+++ b/src/libc.h
@@ -0,0 +1,6 @@
+#ifndef LIBC_H
+#define LIBC_H
+
+const char *display_libc();
+
+#endif