main

Выделение библиотеки

Задался вопросом "как вынести часть кода в плагин"? После беглой пробежки по форумам и гуглу уяснил следующие способы (для чистого си):

  • dlopen() -- джедайство. Не требует практически нихрена, подключение хедера и либу из набора стандартных (наподобие libmath). Работает в пределах POSIX.
  • ltdl -- способ чуть сложнее, требует libtool, создатели обещают рай на земле и поддержку всяких HPUX'ов, что для меня неактуально.
  • glib -- тяжёлая артиллерия. Буду писать что-то тяжёлое - надо будет попробовать.

В моём случае план работ выглядит достаточно просто:

  • выделяем интерфейс в виде структуры с указателями на функции
  • пишем 2 функции для загрузки/выгрузки плагина
  • переписываем прямые вызовы функции на вызовы через структуру
  • пишем вызовы загрузки/выгрузки модуля в начале и конце main()
  • ...
  • профит

Вопросы:

  • стоит ли городить огород в версии, где ещё нет ни демона ни конфигов? как указывать имя нужного плагина-то?