calldynamiclib.c 1.0 KB

123456789101112131415161718
  1. #include <stdio.h>//библиотека для стандартных функций ввода-вывода
  2. #include <dlfcn.h>//библиотека для работы с разделяемыми библиотеками
  3. typedef void (*fundll)(char*);
  4. int main()
  5. {
  6. void * libhandle = dlopen("./libdynamic.so",RTLD_LAZY);//подключаем библиотеку
  7. fundll showMess = dlsym(libhandle,"message");//импортируем функцию для вывода сообщений
  8. int (*funPov)(int) = dlsym(libhandle,"pov");//импортируем функцию для возведения в степень
  9. char str[20] = "Привет мир!\n"; //инициализация строки
  10. showMess(str); //вызов библиотечной функции (вывод сообщения)
  11. int x = funPov(2); //вызов библиотечной функции (возведение в степень)
  12. printf("%d\n", x);//вывод результата в консоль
  13. return 0;
  14. }