Как разделяемая библиотека (.so) может вызывать функцию, которая реализована в ее загрузочной программе?
У меня есть общая библиотека, которую я реализовал, и я хочу, чтобы .so вызывал функцию, которая реализована в основной программе, которая загружает библиотеку.
Допустим, у меня есть main.c (исполняемый файл), который содержит:
void inmain_function(void*);
dlopen("libmy.so");
В my.c (код для libmy.so) я хочу позвонитьinmain_function
:
inmain_function(NULL);
Как может общая библиотека вызыватьinmain_function
независимо от того фактаinmain_function
определяется в основной программе.
Примечание: я хочу вызывать символ в main.c из my.c, а не наоборот, что является обычным явлением.