如何在Python代码中捕获嵌入式C++模块的exit()?

8 投票
2 回答
1548 浏览
提问于 2025-04-15 14:23

我在我的Python应用程序中嵌入了一个C++库(使用SIP进行了绑定)。在某些情况下(比如出错的时候),这个库会调用exit(),这会导致我的整个应用程序都退出。
有没有办法捕捉到这个事件,或者我需要修改这个库,让它以不同的方式处理错误?

非常感谢,

2 个回答

0

你可以通过设置LD_LIBRARY_PATH来覆盖库的链接,并且可以自己写一个退出函数。这样做是没问题的。

7

你需要修改这个库的源代码。在C语言中没有“异常处理”,而且exit()这个函数在任何情况下都不会返回到调用它的代码。

撰写回答