Mac OS X は、dyld と呼ばれる動的ロード用の便利なライブラリを提供します。動的読み込み処理のための多くの興味深い関数の中には、画像がロードまたはアンロードされるたびに dyld によって呼び出されるコールバックをインストールできるようにする関数がありdlopen
ますdlclose
。これらの機能はvoid _dyld_register_func_for_add_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide))
、void _dyld_register_func_for_remove_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide))
それぞれ と です。
dyld 関数は mach-o ファイルを処理し、Linux は ELF ファイルを使用するため、Linux 用の正確なポートを持つことができないことはわかっています。
では、Linux 用の dyld ライブラリに相当するものはありますか。または、少なくとも、これら 2 つの関数に相当する と は_dyld_register_func_for_add_image
Linux_dyld_register_func_for_remove_image
ライブラリにあるのでしょうか? または、これら 2 つの独自のバージョンを自分で実装する必要がありますが、それほど難しくはありませんがdlopen
、dlclose
コールバック関数が呼び出されるたびに作成して呼び出す方法を見つける必要があります。
編集
より明確にするために、外部ライブラリが によって動的にロードされるたびに呼び出す必要があるコールバック関数を持つライブラリを作成する必要がありますdlopen
。私のコールバック関数は、動的に読み込まれたライブラリに対していくつかの操作を実行する必要があります。