我正在使用 C# 使用以下语法使用 C 库:
[DllImport("clib.so")
static extern int func(char* foo);
我想知道是否有任何方法可以捕获 C 代码中发生的退出 (#),以便在发生严重错误时我可以重新加载库。
谢谢!
最佳答案
我相信 exit() 将终止进程而无需重新输入托管代码。可能您可以注册一个函数,以便在发生这种情况时通过 P/Invoke 预先调用 atexit() 来通知您。但是如果你从这里返回,这个过程仍然会退出。我想不返回将使流程处于不确定状态。您可能需要实现某种形式的进程隔离并观察垂死库的进程退出。
关于c# - 在 C# 中从 C 库中捕获 exit(#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609560/