2
現在我在linux下編寫一個可加載的.so模塊,我想在主程序中使用dlopen
,並在可加載的.so模塊中使用_init()
。我的計劃是這樣的:在linux下使用dlopen()api時,我可以在_init()函數中添加參數嗎?
主程序:
...
dlopen(lib, flags);
...
加載模塊:
#define MODULE_EXPORT(name, minit, mexit) \
int __##name##_init(void) __attribute__((alias(#minit))); \
void __##name##_exit(void) __attribute__((alias(#mexit)));
MODULE_EXPORT(dump, dump_init, dump_exit);
static int dump_init(void)
{
...
}
現在我想添加PARAM到dump_init功能,像這樣:
static int dump_init(const char *param){}
我不知道該怎麼做,或者我可以在linux中使用另一個新的API?謝謝〜
如果你能做到這一點,第二次調用'dlopen'的參數會發生什麼情況,不需要初始化你的庫? –