diff options
Diffstat (limited to 'libdynsymlink.c')
| -rw-r--r-- | libdynsymlink.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libdynsymlink.c b/libdynsymlink.c new file mode 100644 index 0000000..f1c225c --- /dev/null +++ b/libdynsymlink.c @@ -0,0 +1,23 @@ +#define _GNU_SOURCE +#include <dlfcn.h> + +#include <stdio.h> + +static int dynsym_initialized = 0; +static int (*real_printf) (const char *); + +void dynsym_init(void) +{ + if(!dynsym_initialized) { + real_printf = dlsym(RTLD_NEXT, "printf"); + dynsym_initialized = 1; + } +} + +int printf(const char *__restrict __format, ...) +{ + dynsym_init(); + (*real_printf)("This is libdynsymlink printf\n"); + return (*real_printf)(__format); +} + |
