8.5 dl ---
Appel des fonctions C en libraries partagées
Disponibilité: Unix
Le module dl est une interface à la fonction dlopen().
Cette fonction est la plus utilisée sur les plateformes Unix, en ce
qui concerne le chargement de librairies dynamiques à l'exécution
dans un logiciel.
Note: Ce module ne marche que si
sizeof(int) == sizeof(long) == sizeof(char *)
Dans le cas contraire, l'exception SystemError est levée à
l'import.
Le module dl déclare les fonctions suivantes:
open(name[, mode = RTLD_LAZY])
- Ouvre un fichier objet partagé et retourne une référence.
Le mode spécifie si la résolution de l'édition de liens se fait
tardivement (RTLD_LAZY) ou immédiatement (RTLD_NOW).
Par défaut, RTLD_LAZY est utilisé. Il faut remarquer que
certains systèmes n'acceptent pas RTLD_NOW.
La valeur de retour est un dlobject.
Le module dl défini les constantes suivantes:
RTLD_LAZY- Valeur pour le mode argument de open().
RTLD_NOW- Valeur pour le mode argument de open(). Si le système hôte
ne permet pas l'édition immédiate, cette constante n'existe pas.
Il est alors préférable d'utiliser hasattr() pour déterminer si
la constante est présente ou pas, et donc si votre système permet l'édition
de liens dynamique immédiate.
Le module dl défini les exceptions suivantes:
error- L'exception est levée si une erreur survient lors du chargement de la
librarie dynamique ou lors de l'édition de liens dynamique.
Exemple:
>>> import dl, time
>>> a=dl.open('/lib/libc.so.6')
>>> a.call('time'), time.time()
(929723914, 929723914.498)
Cet exemple a été essayé sur un système Debian GNU/Linux et c'est un
bon exemple sur le fait que l'utilisation de ce module est une
mauvaise alternative.
Sous-sections
- Les objets de Dl