For functions registered using atexit(): Is it possible to retrieve references to them, to call them directly?
Although this is meant as a general question, solutions regarding the use of gcc/glibc are welcome.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Not in any portable way, no. The list of registered functions is owned by the runtime library, and there is no interface to access it.
For glibc specifics as per your comment, the exit handlers are implemented by exit.c and exit.h. I haven’t studied them intensely enough to figure out of it’s possible to drill through the abstraction/data hiding. You might need to e.g. include glibc-specific headers that probably aren’t generally available, for instance.