#define _GNU_SOURCE #include #include #include #include extern char* __progname_full; ssize_t read(int fd, void *buf, size_t count) { ssize_t (*original_read)(int fd, void* buf, size_t count); original_read = dlsym(RTLD_NEXT, "read"); fprintf(stderr, "libread-wrapper.so: current_fn: %p, dlsym fn: %p, pid: %d, exe: %s.\n", read, original_read, getpid(), __progname_full); return (original_read)(fd, buf, count); }