dlopen

Prototypes

void *dlopen(char *NomBibliotheque, int Mode);

void *shl_load(char *NomBibliotheque, int Mode);

Description

Charge la bibliothèque dynamique NomBiblotheque et réalise la résolution des symboles selon le mode Mode.

Exemple

#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
/*
#include <dl.h>
*/

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

...
Handle=dlopen("/tmp/libessai.a", RTLD_NOW);
/*
Handle=shl_load("/tmp/libessai.sl", BIND_IMMEDIATE);
*/
if (!Handle) ...
Procedure=(void (*)(void))dlsym(Handle, "MaProcedure");
/*
Procedure=NULL;
shl_findsym(&Handle, "MaProcedure", TYPE_UNDEFINED, &Procedure);
*/
if (!Procedure) ...
(*Procedure)();
...
if (dlclose(Handle)==-1) /*
if (shl_unload(HandleBibliotheque)==-1)
*/
...
...

Avertissement

Le séparateur de répertoire doit être le caractère division /.

Si le chemin n'est pas précisé, la bibliothèque est recherchée parmi la liste des chemins précisée par la variable environnement LD_LIBRARY_PATH.

Le résultat est NULL si le chargement n'a pu avoir lieu.

L'extension d'une bibliothèque dynamique est :

Sur Hewlett Packard :

Voir aussi

dlclose pour décharger une bibliothèque dynamique. dlsym pour rechercher un symbole.