Linux equivalent of DllMain

Seva Alekseyev picture Seva Alekseyev · Sep 17, 2012 · Viewed 14.4k times · Source

In *nix .so libraries, is there an entry point that's invoked by the system when the library is loaded and unloaded?

On a more practical note: if the .so was written in C++ and it contains global objects with constructors and destructors, and it's loaded from a language that has no notion of construction/destruction, are the global objects properly constructed/destructed?

Answer

doron picture doron · Sep 17, 2012

You can use the __attribute__((constructor)) and __attribute__((destructor)) to execute code on load and unload of the shared library.