/
MaestroN
/
Eltex_Homework
Обзор
Документация
Войти
/
MaestroN
/
Eltex_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_8/Task8.3.c
41 строка
1 KB
nikita_shub
Добавление задания 8 Библиотеки
28 янв 2025, 15:29
28 янв 2025, 15:29
b327212
Код
Авторство
О чём код?
/*Подзадание 3. Динамическая загрузка 1. Используем динамическую библиотеку из подзадания 2. 2. В основном приложении main.c: • Не линкуйтесь напрямую, а используйте dlopen("libapp.so", RTLD_LAZY), • Получите адрес одной из функций через dlsym, • Вызовите её. 3. Выведите результат и корректно закройте дескриптор dlclose.*/ #include <stdio.h> #include <dlfcn.h> int main() { int a = 20, b = 3; // Загрузка библиотеки void *handle = dlopen("./TASK8.2/libmydynamic.so", RTLD_LAZY); if (!handle) { fprintf(stderr, "Ошибка1: %s\n", dlerror()); return 1; } // Получение указателя на функцию int (*summa)(int, int) = dlsym(handle, "sum"); char *error; if ((error = dlerror()) != NULL) { fprintf(stderr, "Ошибка2: %s\n", error); dlclose(handle); return 1; } printf("Сумма равна=%d\n", summa(a,b)); return 0; }