dlsym

Prototypes

void *dlsym(void *Handle, char *NomSymbole);

int shl_findsym(void **Handle, char *NomSymbole, int Type, void **API);

Description

Recherche le symbole de nom NomSymbole dans la bibliothèque identifiée par Handle qui a été chargée dynamiquement.

NomSymbole désigne soit une variable globale non statique ou soit une fonction non statique.

Le résultat est le pointeur vers ce symbole.

Exemple

#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>

void *Handle;
void (*Procedure)(void);

...
Handle=dlopen("/tmp/libessai.a", RTLD_NOW);
if (!Handle) ...
Procedure=(void (*)(void))dlsym(Handle, "MaProcedure");
if (!Procedure) ...
(*Procedure)();
...
if (dlclose(Handle)==-1)
...

Avertissement

Si le symbole n'existe pas, le résultat est NULL.

Voir aussi

dlopen pour charger une bibliothèque dynamique. dlclose pour décharger une bibliothèque dynamique.