我有一个应用程序A(由某公司X)。这个应用程序允许我通过允许我编写自己的函数来扩展功能。为共享库或DLL编写信号处理程序?
我告诉应用程序A在应用程序A的配置文件中调用我的用户函数(这是知道Appl A必须调用用户编写的函数的方式)。应用程序A使用函数指针,我必须在调用用户编写的函数之前向应用程序A注册。
如果我的用户在生产中编写的函数存在缺陷或错误,则Appl A将停止运行。例如,如果我的用户书写函数中存在分段错误。
因此,应用程序A将从共享的DLL文件中加载我的用户编写的函数。这意味着我的用户编写的函数将在应用程序A的进程地址空间中运行。
我想用零来处理某些信号像分割故障,分裂和堆栈溢出,但应用程序的一个都有自己的信号处理程序这份书面,
我怎么能写我自己的信号处理赶上例外我的用户编写的函数,以便我可以正常清理而不影响应用程序A的大部分?由于我的用户功能将在应用程序A的过程中被调用,操作系统将调用用应用程序A编写的信号处理程序,而不是我的用户功能。
我该如何改变这种情况?我希望OS调用在我的函数中编写的信号处理函数,但仅限于由我的函数引发的信号,这本质上是异步的。
注意:我没有应用程序A的源代码,我无法对其进行任何更改,因为它由不同的公司控制。
我将在Linux,solaris和windows平台上使用C和C语言。
在C++
您无法使用异常处理程序捕捉信号。你只能捕捉异常。 – codemaker 2016-11-01 16:06:56