标签: c gcc glibc atexit
对于使用atexit()注册的函数:是否可以检索对它们的引用,直接调用它们?
atexit()
虽然这是一般性问题,但欢迎使用gcc / glibc的解决方案。
gcc
glibc
答案 0 :(得分:3)
不是以任何便携方式,不是。已注册函数的列表由运行时库拥有,并且没有可访问它的接口。
根据您的评论,对于glibc细节,退出处理程序由exit.c和exit.h实现。我没有充分研究它们,以便弄清楚它是否可以钻取抽象/数据隐藏。您可能需要例如例如,包括可能通常不可用的特定于glibc的标头。
答案 1 :(得分:2)
没有。但是,如果您可以控制应用程序中的所有代码,则可以自己维护一个列表,并将单个函数注册到系统终止时将通过列表运行的实际atexit()。