Я пишу сетевое приложение на c ++ и хочу включить создание плагинов, но я не знаю, что делать, чтобы защитить свое приложение от ошибок, таких как segfault. Например:
У меня есть интерфейс:
class IPlugin{
public:
IPlugin();
virtual ~IPlugin();
virtual void callPlugin() = 0;
}
А кто-то напишет динамическую библиотеку:
class Plugin : public IPlugin{
public:
Plugin();
virtual ~Plugin();
virtual void callPlugin();
}
void Plugin::callPlugin(){
int* a = NULL;
*a = 5;
}
Вызов этой функции в моем приложении закончится завершением всего. Я знаю, что могу использовать fork (), но функции в плагинах будут короткими и будут использоваться много раз, поэтому я думаю, что fork () слишком медленный. Есть идеи?
PS. И извините за мой английский.