在运行时加载的dll/so中atexit()的行为是什么?

What is the behavoir of atexit() in a dll/so loaded at runtime?

本文关键字:是什么 atexit 加载 运行时 dll so      更新时间:2023-10-16

如果我在运行时加载dll/so文件(即使用LoadLibrary()dlopen()), c++ atexit()函数的行为是什么?如果我在应用程序退出之前卸载库,它会被调用吗?我能在所有平台上看到相同的行为吗?(特别是windows和类unix系统)

在windows下:当你调用FreeLibrary然后为每个dll将执行atexit函数链。重要的是要注意,dll以未指定的顺序卸载,所以不要添加依赖于其他dll全局变量的atexit处理程序。

这里有一些更多的信息链接:http://msdn.microsoft.com/en-us/library/988ye33t.aspx