Ctypes est une bibliothèque qui sert de glu entre les langages Python et C. Elle permet d'appeler des fonctions de bibliothèques externes écrites en C, de définir des types, des structures et des callbacks Python.
La bibliothèque a été écrite par Thomas Heller en 2003. D'abord développée comme un projet indépendant, elle a été intégrée à Python 2.5. Pour appeler des fonctions externes, ctypes se repose sur la bibliothèque [libffi] (Foreign Function Interface), écrite à l'origine par Anthony Green en 1999 pour Red Hat.
1. Hello World!
Entrons dans le vif du sujet avec un appel à la fonction printf() de la bibliothèque C :
$ python
>>> from ctypes import cdll
>>> libc = cdll.LoadLibrary('libc.so.6')
>>> libc.printf("Hello World!\n")
Hello World!
13
Première constatation : ctypes s'occupe tout seul de convertir la chaîne de caractères Python Hello World!\n dans le format C (chaîne char* terminée par un octet nul). Le nombre 13 est le résultat de la fonction printf (nombre d'octets écrits). C'est effectivement la longueur de notre chaîne. Le code est extrêmement simple : nous n'avons pas eu besoin de spécifier le type,...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première