0

Windows では、プロセスが動的ライブラリをロードまたはアンロードするときに、DLLMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 関数が使用されます。そのため、DLL をアンロードする必要がある場合は、lpvReserved パラメータを使用して、FreeLibrary が呼び出されたかどうか、または単にプロセスの終了が DLL のアンロードの理由であったかどうかを判断できます。

しかし、Linux では、コンテキストのないデストラクタ (「fini」関数など) があります。そして問題は、ライブラリのファイナライズがプロセスの終了によってトリガーされたが、手動のライブラリーのアンロードやその他の理由によってではなく、Linux でどのように判断できるかということです。

4

0 に答える 0