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.

questionAnswers(4)

yourAnswerToTheQuestion