Comment une bibliothèque partagée (.so) peut-elle appeler une fonction implémentée dans son programme de chargement?

J'ai une bibliothèque partagée que j'mettre en œuvre et je veux le .afin d'appeler une fonction dans le programme principal de chargement de la bibliothèque.

Disons que j'ai principaux.c (exécutable) qui contient:

void inmain_function(void*);
dlopen("libmy.so");

Dans le mon.c (le code de la libmy.donc), je tiens à appeler inmain_function:

inmain_function(NULL);

Comment la bibliothèque partagée appel inmain_function indépendamment du fait inmain_function est défini dans le programme principal.

Note: je tiens à appeler un symbole dans la main.c de mon.c pas vice-versa, ce qui est l'usage commun.

source d'informationauteur 0x90