Linux equivalent of DllMain

前端 未结 3 371
醉梦人生
醉梦人生 2020-12-30 23:18

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 writte

3条回答
  •  清歌不尽
    2020-12-30 23:39

    1. No, there is no equivalent to DllMain.

    2. For JNI libraries, e.g. on Android, there may be a special entry JNI_OnLoad which is intended to fill JNI function table.

    3. GCC defines special attribute constructor to allow some code to run on shared library load.

    4. C++ guarantees that the constructors for global and static objects will be performed, no matter if the code that loaded the .so was aware of these classes, or had notion of construction.

      Same holds for destructors, but there may be unhappy circumstances when at least some destructors have no chance to run - e.g. when there is a sigfault and exceptions are disabled.

提交回复
热议问题