Выделение библиотеки
Задался вопросом "как вынести часть кода в плагин"? После беглой пробежки по форумам и гуглу уяснил следующие способы (для чистого си):
- dlopen() -- джедайство. Не требует практически нихрена, подключение хедера и либу из набора стандартных (наподобие libmath). Работает в пределах POSIX.
- ltdl -- способ чуть сложнее, требует libtool, создатели обещают рай на земле и поддержку всяких HPUX'ов, что для меня неактуально.
- glib -- тяжёлая артиллерия. Буду писать что-то тяжёлое - надо будет попробовать.
В моём случае план работ выглядит достаточно просто:
- выделяем интерфейс в виде структуры с указателями на функции
- пишем 2 функции для загрузки/выгрузки плагина
- переписываем прямые вызовы функции на вызовы через структуру
- пишем вызовы загрузки/выгрузки модуля в начале и конце main()
- ...
- профит
Вопросы:
- стоит ли городить огород в версии, где ещё нет ни демона ни конфигов? как указывать имя нужного плагина-то?