From 86a8a6c5f7f1bef0e014b0383f9e9343d255d225 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Sun, 29 Dec 2024 12:02:04 +0000 Subject: [PATCH] Load mod dynamically --- build.sh | 2 +- main.c | 7 +++++-- mod.c | 2 -- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/build.sh b/build.sh index 9bbab7e..9e167c7 100755 --- a/build.sh +++ b/build.sh @@ -2,4 +2,4 @@ CFLAGS="-std=c11 -pedantic -Wall -Wextra" mkdir -p build clang $CFLAGS -fPIC -shared mod.c -o build/libmod.so -clang $CFLAGS -Lbuild -lmod main.c -o build/demo +clang $CFLAGS main.c -o build/demo diff --git a/main.c b/main.c index 1b6a749..b33f8c9 100644 --- a/main.c +++ b/main.c @@ -5,13 +5,16 @@ #define _POSIX_C_SOURCE 199309L -#include "mod.h" - +#include #include #include +typedef const char *(*getmsg_t)(void); + int main(void) { + void *mod = dlopen("libmod.so", RTLD_NOW); + const getmsg_t getmsg = (getmsg_t)dlsym(mod, "getmsg"); const struct timespec pause = { .tv_nsec = 16666667 }; while (1) { printf("\33[2K\r%s", getmsg()); diff --git a/mod.c b/mod.c index 70d9285..b772998 100644 --- a/mod.c +++ b/mod.c @@ -3,8 +3,6 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -#include "mod.h" - const char *getmsg(void) { return "hi";