据我所知,__cxa_finalize
退出主函数时会调用一个程序(在 Linux 中用 C++ 编写)。我创建了一个共享库并在主函数中使用这个库。当主程序加载/卸载这个库时,我想采取一些措施。我在创建共享库时发现该函数__attribute__
可以用于该目的(我猜这个函数应该在共享库代码中实现)
我添加了类似的东西:
void __attribute__ ((constructor)) my_load(void);
void __attribute__ ((destructor)) my_unload(void);
我在以下链接中实现了函数 my_load 和 my_unload:http: //tdistler.com/2007/10/05/implementing-dllmain-in-a-linux-shared-library
问题是在退出主函数时这些函数的处理顺序究竟是什么?my_unload()
功能或__cxa_finalize
?