W jaki sposób biblioteka współdzielona (.so) wywołuje funkcję zaimplementowaną w jej programie ładującym?
Mam bibliotekę współużytkowaną, którą zaimplementowałem i chcę, aby .so wywołała funkcję zaimplementowaną w głównym programie ładującym bibliotekę.
Powiedzmy, że mam plik main.c (plik wykonywalny) zawierający:
void inmain_function(void*);
dlopen("libmy.so");
W my.c (kod libmy.so) chcę zadzwonićinmain_function
:
inmain_function(NULL);
Jak wywołać bibliotekę współdzielonąinmain_function
niezależnie od faktuinmain_function
jest zdefiniowany w programie głównym.
Uwaga: Chcę wywołać symbol w main.c z my.c nie odwrotnie, co jest powszechnym zastosowaniem.