2015-08-08 138 views
0

我正在linux中使用'dlopen'插件系统。这是一个在插件之间传输数据(JSON)的中央应用程序。 我们可以使用try-catch子句处理抛出的异常。我的问题是关于终止程序的错误,如分段错误。如何防止终止整个应用程序的插件故障中的一个?如何防止插件中的崩溃影响主程序(dlopen)

我可以用叉子做点什么吗?我从来没有使用叉,我不知道如果我可以在分叉进程和主进程之间传输数据? 或者我不能使用dlopen fr这样的事情,我必须使用另一种方法?

谢谢。

+1

如果可以的话,您不能轻松分离信号处理。信号处理程序是全过程的,所以即使您使用'sigsetjmp/siglongjmp'来处理代码中的SIGSEGV,例如,您仍然会影响整个过程 - 同时让整个过程影响您的代码。 –

回答

1

据我所知是安全的唯一方法是在serparate运行插件 进程,以及在管道或你使用JSON这样你的数据已经系列化插座等

与他们沟通,你需要编写一个加载插件的插件,并处理预存在的插槽。

+0

是啊,我也想到套接字。我只是想看看是否有解决信号的方法... – ajlajlajl

+0

带外信号可能在插座上。我不确定细节。 – Jasen