Chapitre 2 : Présentation des fonctions de dl

Quand on regarde dans le manuel, on remarque qu'il n'y a pas beaucoup de fonctions dans cette lib.

L'include à utiliser pour dl est :

1
#include <dlfcn.h>

Les fonctions que nous utiliserons :

  • dlopen : la fonction qui va nous permettre de charger une librairie
  • dlclose : pour fermer la librairie que l'on a chargée avant
  • dlerror : la fonction qui renverra les erreurs (il ne faudra pas oublier de l'appeler)
  • dlsym : pour récupérer le pointeur d'une fonction de la librairie que l'on a chargée avec dlopen

Et quelques fonctions en plus :

  • dlvsym : pour récupérer le pointeur d'une fonction de la librairie que l'on a chargée avec dlopen et prendre en compte la version
  • dladdr : pour récupérer des informations sur une fonction contenue dans la lib que l'on vient de charger
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//charge la lib dans le programme
void *dlopen(const char *filename, int flag);
//ferme la lib
int dlclose(void *handle);

//renvoie les erreurs
char *dlerror(void);

//renvoie une fonction de la lib que l'on veut charger
void *dlsym(void *handle, const char *symbol);
void *dlvsym(void *handle, char *symbol, char *version);

//renvoie les infos d'une fonction de la lib que l'on veut charger
int dladdr(void *addr, Dl_info *info);

Maintenant passons aux précisions concernant la fonction dlopen.