Загрузка данных


cat > loader.c << 'EOF'
#include <dlfcn.h>
#include <dirent.h>
#include <stdio.h>
#include <string.h>

int main() {
    DIR *d;
    struct dirent *e;
    char path[512];
    
    d = opendir(".");
    if (!d) {
        printf("Не могу открыть директорию\n");
        return 1;
    }
    
    while ((e = readdir(d)) != NULL) {
        if (strstr(e->d_name, ".so")) {
            printf("\nФайл: %s\n", e->d_name);
            
            snprintf(path, sizeof(path), "./%s", e->d_name);
            void *h = dlopen(path, RTLD_LAZY);
            
            if (!h) {
                printf("  Ошибка: %s\n", dlerror());
                continue;
            }
            
            dlerror();
            void (*info)(void) = dlsym(h, "info");
            char *err = dlerror();
            
            if (err) {
                printf("  info() не найдена\n");
            } else {
                printf("  info(): ");
                info();
            }
            dlclose(h);
        }
    }
    closedir(d);
    return 0;
}
EOF